import java.awt.*
import java.awt.geom.*
public class Example6_5 extends JFrame
{
public Example6_5()
{
setSize(180,180)
setVisible(true)
setDefaultCloseOperation(EXIT_ON_CLOSE)
}
public static void main(String[] args)
{
new Example6_5()
}
public void paint(Graphics g)
{
Graphics2D g_2d=(Graphics2D)g
Line2D line_1=new Line2D.Double(50,50,120,50)
Line2D line_2=new Line2D.Double(50,80,120,80)
Line2D line_3=new Line2D.Double(50,110,120,110)
BasicStroke bs_1=new BasicStroke(16,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)
BasicStroke bs_2=new BasicStroke(16f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER)
BasicStroke bs_3=new BasicStroke(16f,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_ROUND)
g_2d.setStroke(bs_1)
g_2d.draw(line_1)
g_2d.setStroke(bs_2)
g_2d.draw(line_2)
g_2d.setStroke(bs_3)
g_2d.draw(line_3)
}
}
setStroke可以设置线的属性public abstract void setStroke(Stroke s)为 Graphics2D 上下文设置 Stroke
参数:
s - 呈现过程中用于勾画 Shape 的 Stroke 对象
另请参见:
BasicStroke, getStroke()
BasicStroke 是一个线条属性的集合
public BasicStroke(float width)构造一个具有指定线条宽度以及 cap 和 join 风格的默认值的实心 BasicStroke。
参数:
width - BasicStroke 的宽度
抛出:
IllegalArgumentException - 如果 width 为负
不知道楼主是不是想自己重写java控件?还是想实现什么效果?
import javax.swing.*import java.awt.*
class DrawPanel extends JPanel{
private int x = 25
private int y = 50
public void paintComponent(Graphics g)
{
super.paintComponent(g)
int radius = 10
Graphics2D g2d=(Graphics2D)g
Stroke stroke=new BasicStroke(3.0f)//设置线宽为3.0
g2d.setStroke(stroke)
Font f = new Font("Times New Roman", Font.BOLD+Font.ITALIC, 30)
g2d.setFont(f)
g2d.drawString("2008 Beijing Olympic Game ", x, y)
g2d.setColor(new Color(255,0,0))
g2d.drawArc(35 , 65 , radius, radius, -90, 360)
g2d.setColor(new Color(36,56,242))
g2d.drawArc(85 , 65 , radius, radius, -90, 360)
g2d.setColor(new Color(49,222,35))
g2d.drawArc(10 , 105 , radius, radius, -90, 360)
g2d.setColor(new Color(240,245,33))
g2d.drawArc(60 , 105 , radius, radius, -90, 360)
g2d.setColor(new Color(0,0,0))
g2d.drawArc(110 , 105, radius, radius, -90, 360)
}