java中如何设置线条的粗细例题?

Python067

java中如何设置线条的粗细例题?,第1张

import javax.swing.*

import java.awt.*

import java.awt.geom.*

public class Example6_5 extends JFrame

{

public Example6_5()

{

super("设置线条粗细")

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)

}