Untuk membuat objek geometri yang lebih kompleks, misalnya poligon, segitiga, atau bintang, Anda bisa menggunakan kelas lain dari paket java.awt.geom, yaitu GenaralPath. GeneralPath dimulai dari titik asal, misalnya (0,0). Untuk membuat objek dengan kelas GeneralPath, panggil dengan new GeneralPath() kemudian tambahkan segmen ke bentuk yang akan dibuat dengan menggunakan method-method berikut:
- moveTo(float x, float y) – Memindahkan titik path sekarang ke titik path yang diinginkan.
- ineTo(float x, float y) – menambahkan segmen garis ke path sekarang
- quadTo(float x, float y) – menambahkan segmen kurva kuadrat ke path sekarang
- curveTo(float x, float y) – menambahkan segmen kurva kubik ke path sekarang
- closePath() – menutup path.
- ineTo(float x, float y) – menambahkan segmen garis ke path sekarang
- quadTo(float x, float y) – menambahkan segmen kurva kuadrat ke path sekarang
- curveTo(float x, float y) – menambahkan segmen kurva kubik ke path sekarang
- closePath() – menutup path.
Bentuk Class
package bentuk;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
/**
*
* @author Hp
*/
public class Bentuk extends JPanel {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//Buat frame dengan title sesuai kebutuhan
JFrame frame = new JFrame ("Geometri Aslam Haikal");
frame.setSize(650,350);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//tambahkan objek dari
//Panah canvas = new Panah();
//Bintang canvas = new Bintang();
Mobil canvas = new Mobil();
//Kapal canvas = new Kapal();
//cobal canvas = new cobal();
//OperasiBoolean canvas = new OperasiBoolean();
frame.getContentPane().add(canvas);
frame.pack();
//agar frame muncul di tengah layar
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
Mobil Class
package bentuk;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
/**
*
* @author Axio
*/
public class Mobil extends JPanel {
//Constructor
public Mobil() {
this.setPreferredSize (new Dimension(400, 300));
this.setBackground(Color.WHITE);
}
//Tambahkan kode untuk menampilkan objek grafik
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
GeneralPath gp = new GeneralPath();
gp.moveTo(60,120);
gp.lineTo(80,120);
gp.quadTo(90,140,100,120);
gp.lineTo(160,120);
gp.quadTo(170,140,180,120);
gp.lineTo(200,120);
gp.curveTo(195,100,200,80,160,80);
gp.lineTo(110,80);
gp.lineTo(90,100);
gp.lineTo(60,100);
gp.lineTo(60,120);
g2.draw(gp);
}
}
Hasil