java如何绘制粗线
使用 Graphics2D 设置笔画宽度
在 Java 中,绘制粗线通常通过 Graphics2D 类实现。Graphics2D 是 Graphics 的子类,提供了更丰富的绘图功能,包括设置线条的宽度。
import java.awt.*;
import javax.swing.*;
public class DrawThickLine extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// 设置线条宽度为 5 像素
g2d.setStroke(new BasicStroke(5));
g2d.drawLine(50, 50, 200, 50);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Draw Thick Line");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DrawThickLine());
frame.setSize(300, 150);
frame.setVisible(true);
}
}
使用 BasicStroke 自定义线条样式
BasicStroke 不仅可以设置线条宽度,还可以定义线条的端点样式(如圆形或方形)和连接样式(如斜接或圆角)。
// 设置线条宽度为 10 像素,端点样式为圆形,连接样式为斜接
g2d.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
g2d.drawLine(50, 50, 200, 50);
绘制虚线
通过 BasicStroke 还可以绘制虚线,只需传入一个虚线模式数组。
// 设置虚线样式:每段 10 像素实线,5 像素空白
float[] dashPattern = {10, 5};
g2d.setStroke(new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, dashPattern, 0));
g2d.drawLine(50, 50, 200, 50);
绘制多边形或曲线时保持线条宽度
对于复杂图形(如多边形或曲线),线条宽度的设置同样适用。

// 绘制一个粗边的矩形
g2d.setStroke(new BasicStroke(5));
g2d.drawRect(50, 50, 100, 80);
注意事项
- 确保在绘制前调用
setStroke,否则默认线条宽度为 1 像素。 - 线条宽度单位为像素,但实际显示效果可能受屏幕分辨率影响。
- 对于高精度图形,可以考虑使用抗锯齿功能:
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);






