我想增加Line2D的宽度,但找不到任何方法来做到这一点。我需要为此创建一个小矩形吗?
setStroke
来设置Graphics2D
对象的描边。
http://www.java2s.com上的示例提供了一些代码示例。import java.awt.*;
import java.awt.geom.Line2D;
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) {
JFrame jf = new JFrame("Demo");
Container cp = jf.getContentPane();
cp.add(new JComponent() {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
g2.draw(new Line2D.Float(30, 20, 80, 90));
}
});
jf.setSize(300, 200);
jf.setVisible(true);
}
}
请注意,setStroke
方法在Graphics
对象中不可用。您必须将其转换为Graphics2D
对象。
本帖已被改写成文章此处。
Stroke
:
BasicStroke
类定义了一组基本的渲染属性,用于绘制图形原语的轮廓,这些原语使用将其Stroke
属性设置为此BasicStroke
的Graphics2D
对象进行渲染。
https://docs.oracle.com/javase/7/docs/api/java/awt/BasicStroke.html
请注意Stroke
设置:
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
设置线条宽度,需要使用BasicStroke(float width)
构造函数:
使用指定的线条宽度构造一个实心的BasicStroke对象,对于端点和连接处的样式采用默认值。
此外,它还会影响到其他方法,比如Graphics2D.drawLine(int x1, int y1, int x2, int y2)
和Graphics2D.drawRect(int x, int y, int width, int height)
:
Graphics2D接口中使用Stroke对象返回的轮廓Shape的方法包括draw和任何其他基于该方法实现的方法,例如drawLine、drawRect、drawRoundRect、drawOval、drawArc、drawPolyline和drawPolygon。
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)
。 - trashgod