Java Programming‎ > ‎Graphics 2D‎ > ‎

Menggambar dan Mewarnai pada Java 2D

posted Jul 29, 2011, 8:09 PM by Editor KursusInternet   [ updated Jul 29, 2011, 9:28 PM ]
Pada artikel sebelumnya kita sudah membahas penggunaan class Graphics dan Graphics2D sebagai dasar untuk mengolah visualisasi 2 dimensi di Java. 

Pada kesempatan kali ini, akan dijelaskan dengan singkat bahwa sebenarnya kegiatan menggambar dan mewarnai pada Java 2D adalah berbeda. Kegiatan menggambar (draw) adalah mewujudkan bentuk dengan hasil goresan dari batas-batas (outline) bentuk  tersebut.  Sedangkan mewarnai adalah mengisi ruang dari bentuk tersebut (interior) apakah dengan warna atau suatu pola bentuk.

Untuk menggambar kita menggunakan method draw sedangkan untuk mewarnai menggunakan method fill dari class Graphics / Graphics2D.

Sedangkan untuk warna dan pola pengisian kita menggunakan method berikut untuk draw dan fill :
  • setStroke, digunakan untuk mendefinisikan warna dan pola bentuk stroke yang digunakan untuk menggambar.
  • setPaint, digunakan untuk mendefinisikan warna dan pola bentuk yang digunakan untuk pengisian interior maupun outline bentuk.
  • setColor, digunakan untuk mendefinisikan warna secara umum (untuk draw maupun fill).
Table berikut menggambarkan perbedaan antara draw dan fill, disertakan code dan hasil eksekusi.


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

  public void gambar(Graphics g)
  {
    Graphics2D g2d = (Graphics2Dg;
    Ellipse2D lingkaran;
    double xpusat = 100, ypusat = 100;
    double radius = 80;
    lingkaran  = new Ellipse2D.Double(
        xpusat,ypusat,
        radius, radius
    );
    g2d.setPaint(Color.red);
    g2d.fill(lingkaran);
  }


  public void gambar(Graphics g)
  {
    Graphics2D g2d = (Graphics2Dg;
    int x[] {50150250};
    int y[] {25020250};
    g2d.draw(new Polygon(x,y,x.length));
  }



  public void gambar(Graphics g)
  {
    Graphics2D g2d = (Graphics2Dg;
    int x[] {50150250};
    int y[] {25020250};
    GradientPaint gradPaint;
    gradPaint = new GradientPaint(
        80,
        80,
        Color.WHITE,
        200
        200,
        Color.GREEN);
    
    g2d.setPaint(gradPaint);
    g2d.fill(new Polygon(x,y,x.length));
  }




Catatan Penting

Pada class Graphics2D terdapat method setBackground, yang kita tebak akan mengisi latar gambar dengan warna yang kita inginkan.

Hal ini salah. Untuk mewarnai latar, kita perlu tahu object container / component tempat kita menggambar. 


~~ Selesai ~~