import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
import
java.awt.font.*;
import
java.awt.geom.*;
public
class TestStroke1 extends JApplet {
public
static void main(String s[]) {
JFrame
frame = new JFrame();
frame.setTitle("Test
Stroke-1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JApplet
applet = new TestStroke1();
applet.init();
frame.getContentPane().add(applet);
frame.pack();
frame.setVisible(true);
}
public
void init() {
JPanel
panel = new Panel2D();
getContentPane().add(panel);
}
}
class
Panel2D extends JPanel{
public
Panel2D() {
setPreferredSize(new
Dimension(500, 400));
setBackground(Color.white);
}
public
void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D
g2 = (Graphics2D)g;
//menggambar
sebuah garis dengan ketebalan 3 (piksel)
BasicStroke
bsGarisTebal = new BasicStroke(3.0f);
g2.setStroke(bsGarisTebal);
g2.drawLine(30,50,30,250);
//array
untuk mendiskkripsikan pola garis putus-putus.
float[]
dashPattern;
//offset
dimana pola garis putus-putus harus mulai.
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 BasicStroke 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;
//Pendefinisain
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);
}
}
Listing
di atas mempertunjukkan efek grafik yang menggambar garis dengan tipe
garis (stroke)
yang berbeda-beda.