Dalam grafika komputer tidak pernah lepas dari geometri. Yang meliputi pemodelan garis-garis. Dengan garis maka dapat terbentuk sebuah objek geometri.
Di Java 2D tersedia interface stroke untuk menampilkan garis-garis. Implementasi interface diantaranya menggunakan BasicStroke. Kelas BasicStroke menyediakan pengaturan untuk bentuk garis, lebar, gabungan antar garis dan garis putus-putus.
Berikut adalah contoh implementasi BasicStroke.
strokePanel.java
Kemudian kelas panel diatas dipanggil di kelas TesStroke.java
Outputnya :
Di Java 2D tersedia interface stroke untuk menampilkan garis-garis. Implementasi interface diantaranya menggunakan BasicStroke. Kelas BasicStroke menyediakan pengaturan untuk bentuk garis, lebar, gabungan antar garis dan garis putus-putus.
Berikut adalah contoh implementasi BasicStroke.
strokePanel.java
/** * * @author Wim Sonevel */ import java.awt.*; import javax.swing.JPanel; public class strokePanel extends JPanel{ public strokePanel(){ setPreferredSize(new Dimension(500, 400)); setBackground(Color.WHITE); } @Override public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2=(Graphics2D)g; //menggambar sebuah garis dengan ketebalan 3 pixel BasicStroke bsGarisTebal=new BasicStroke(3.0f); g2.setStroke(bsGarisTebal); g2.drawLine(30, 50, 30, 250); //array untuk mendeskripsikan garis putus - putus float[]dashPattern; //offset dimana garis putus-putus harus dimulai float dashPhase=0.0f; //pola garis putus-putus dashPattern=new float[10]; dashPattern[0]=4.0f; dashPattern[1]=5.0f; dashPattern[2]=8.0f; dashPattern[3]=5.0f; dashPattern[4]=12.0f; dashPattern[5]=5.0f; dashPattern[6]=16.0f; dashPattern[7]=5.0f; dashPattern[8]=20.0f; dashPattern[9]=5.0f; //pendefinisian dari Basic Stroke yang akan digunakan BasicStroke bsBerpola=new BasicStroke(3.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 2.0f, dashPattern, dashPhase); g2.setStroke(bsBerpola); //menggambar sebuah garis dengan pola putus-putus g2.drawLine(60, 50, 60, 250); //sebuah pola putus-putus yang sederhana dengan panjang garis(dash) 20 //dan lebar jarak 10 dashPattern=new float[2]; dashPattern[0]=20; dashPattern[1]=10; //pendefinisian BasicStroke yang akan digunakan BasicStroke bsDashed=new BasicStroke(3.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 2.0f, dashPattern, dashPhase); g2.setStroke(bsDashed); //menggambar sebuah garis (vertikal) dengan pola yang telah //didefinisikan sebelumnya g2.drawLine(120, 50, 120, 250); //menggambar sebuah garis (diagonal) dengan pola yang //telah didefinisikan sebelumnya g2.drawLine(150, 50, 350, 250); //menggunakan pola garis putus-putus yang sama seperti sebelumnya //tetapi dengan offset 10 dashPhase=10.0f; //pendefinisian BasicStroke yang akan digunakan BasicStroke bsDashedShifted=new BasicStroke(3.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 2.0f, dashPattern, dashPhase); //menggambar sebuah garis (vertikal) dengan pola putus-putus yang telah //didefinisikan sebelumnya g2.setStroke(bsDashedShifted); g2.drawLine(90, 50, 90, 250); } }
Kemudian kelas panel diatas dipanggil di kelas TesStroke.java
/** * * @author Wim Sonevel */ import javax.swing.*; public class TesStroke extends JApplet{ @Override public void init(){ JPanel panel=new strokePanel(); getContentPane().add(panel); } public static void main(String[]args){ JFrame frame=new JFrame(); frame.setTitle("Garis"); frame.setVisible(true); //frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JApplet applet=new TesStroke(); applet.init(); frame.getContentPane().add(applet); frame.pack(); } }
Outputnya :
Tags:
Java