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 :
1 Komentar
Perkenalkan, saya dari tim kumpulbagi. Saya ingin tau, apakah kiranya anda berencana untuk mengoleksi files menggunakan hosting yang baru?
BalasJika ya, silahkan kunjungi website ini www.kbagi.com untuk info selengkapnya.
Di sana anda bisa dengan bebas share dan mendowload foto-foto keluarga dan trip, music, video, filem dll dalam jumlah dan waktu yang tidak terbatas, setelah registrasi terlebih dahulu. Gratis :)
Penulisan markup di komentar