Java Programming‎ > ‎Graphics 2D‎ > ‎

Menggambar Lingkaran di Java 2D

posted Jul 29, 2011, 7:41 PM by Editor KursusInternet   [ updated Jul 29, 2011, 10:51 PM ]
Untuk menggambar lingkaran / circle di Java 2D sangat sederhana, gunakan constructor class Ellipse2D.Float atau Ellipse2D.Double - yang merupakan turunan dari class Ellipse2D - dengan spesifikasi lebar dan tinggi yang sama.

Berikut adalah contoh potongan codenya dan contoh screenshot hasil eksekusi pada canvas JPanel.

  public void gambar(Graphics g)
  {
    Graphics2D g2d = (Graphics2Dg;
    Ellipse2D lingkaran;
    double xpusat = 100, ypusat = 100;
    double diameter = 80;
    lingkaran  = new Ellipse2D.Double(
        xpusat,ypusat,
        
diameter, diameter
        );
    g2d.draw(lingkaran);
  }


Gambar 1. Hasil menggambar lingkaran pada JPanel

Berikut adalah code lengkap untuk menghasilkan gambar lingkaran seperti pada tampak pada Gambar 1 di atas.

GambarLingkaran.java

package com.kursusinternet.graphics;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class GambarLingkaran extends JPanel {
  private static final long serialVersionUID = 1L;

  public void gambar(Graphics g)
  {
    Graphics2D g2d = (Graphics2Dg;
    Ellipse2D lingkaran;
    double xpusat = 100, ypusat = 100;
    double diameter = 80;
    lingkaran  = new Ellipse2D.Double(
        xpusat,ypusat,
        
diameter, diameter
        );
    g2d.draw(lingkaran);
  }

  public void paintComponent(Graphics g) {
    clear(g);
    gambar(g);
  }

  protected void clear(Graphics g) {
    super.paintComponent(g);
  }

  public static void main(String[] args) {
    GambarLingkaran panelGambar = new GambarLingkaran();
    JFrame frameGambar = new JFrame("Gambar Lingkaran");
    frameGambar.setSize(300300);
    panelGambar.setBackground(Color.white);
    frameGambar.setContentPane(panelGambar);
    frameGambar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frameGambar.setVisible(true);
  }
}


~~ Selesai ~~
Comments