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