Friday 9 November 2012

Membuat Bintang dengan AWT


Masih memanfaatkan Abstracting Windowing, kali ini kita akan membuat shape bintang, dengan menggunakan grafik fill polygon yang ada pada Class Graphic.

Membuat shape bintang, kita membutuhkan 10 titik yang saling dihubungkan dengan garis. Lalu untuk mengisi warna di dalamnya, kita harus menggunakan fill, sehingga grafik yang digunakan adalah fillPolygon.
Dalam pembuatannya, dapat memilih apakah akan membuat bintang dari gabungan beberapa segitiga yang disatukan, atau hanya menggunakan satu polygon saja. Gabungan dari beberapa segitiga pun, memiliki beberapa cara, sehingga bisa didapatkan bentuk bintang utuh. Namun untuk kali ini, hanya akan dibahas membuat shape bintang hanya dengan satu polygon.

Berikut source code yang harus ditulis,

package bintang;

import java.awt.*;

/**
 *
 * @author nadin
 */
public class Bintang extends Panel{
    Bintang()
    {
         setBackground(new Color(0, 0, 0));
    }
   
    @Override
    public void paint(Graphics g){
        g.setColor (new Color(192, 192, 192));
        g.fillOval(-100, 250, 200, 200); //x, y,
        g.fillOval(80, 270, 120, 120);
        g.fillOval(160, 265, 190, 190);
        g.fillOval(310, 275, 100, 100);
        g.fillOval(380, 250, 140, 140);
        g.fillOval(500, 230, 200, 200);
        g.fillRect(0, 360, 700,300);
       
        g.setColor (new Color(255,128,0));
        int [] x = {125, 160, 100, 200, 250, 300, 400, 340, 375, 250};
        int [] y = {350, 235, 150, 150, 50, 150, 150, 235, 350, 300};
        g.fillPolygon(x, y, 10);
             
       
        g.setColor (Color.BLACK);
        g.drawArc(193, 180, 22, 22, 180, 180);
        g.drawArc(193, 179, 22, 22, 180, 180);
        g.drawArc(287, 180, 22, 22, 180, 180);
        g.drawArc(287, 179, 22, 22, 180, 180);

       
        g.setColor(Color.red);
        g.drawArc(240, 242, 24, 24, 180, 180);
        g.drawArc(240, 243, 24, 24, 180, 180);
        g.drawArc(240, 244, 24, 24, 180, 180);      
    }
   
    public static void main(String[] args) {
        Frame f1 = new Frame("Star");
        Bintang a = new Bintang();
        f1.add(a);
        f1.setSize(520, 520);
        f1.setVisible(true);
       
    }
}



Hasilnya :