//////////////////// Main.java ////////////////////
class Main
{
public static void main(String args[])
{
new MainWindow();
}
}
////////////////////////////////////////////////////////////
//////////////////// MainWindow.java ////////////////////
import java.awt.*;
import java.awt.event.*;
class MainWindow extends Frame
{
public MainWindow()
{
super("BasicStroke Test");
MyCanvas canvas = new MyCanvas();
add(canvas, BorderLayout.CENTER);
WindowListener w_listener = new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
};
addWindowListener(w_listener);
pack();
show();
}
}
////////////////////////////////////////////////////////////
//////////////////// MyCanvas.java ////////////////////
import java.awt.*;
class MyCanvas extends Canvas
{
private final Dimension default_size = new Dimension(256, 256);
public MyCanvas()
{
setSize(default_size);
}
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
// 点線のパターン
float[] dash_array = {15.0f, 4.0f, 2.0f, 4.0f};
// 線の太さ
float line_width = 1.5f;
// 線種の選択とGraphics2Dへの設定
BasicStroke bs = new BasicStroke(line_width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL,
0f, dash_array, 0f);
g2d.setStroke(bs);
// 点線の描画
g2d.drawLine(0, 127, 255, 127);
g2d.drawRect(0, 0, 255, 255);
g.drawOval(0, 0, 255, 255);
}
}
////////////////////////////////////////////////////////////
Source is here. (ZIP Format, 1052Byte, Shift-JIS)