繁体   English   中英

Java2D:增加行宽

[英]Java2D: Increase the line width

我想增加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对象中不可用。您必须将其setStroke转换为Graphics2D对象。)


这篇文章在这里已被重写为文章。

什么是Stroke

BasicStroke类为图形基元的轮廓定义了一组基本的呈现属性,这些属性是通过Graphics2D对象呈现的,该对象的Stroke属性设置为此BasicStroke。

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(float width)

构造一个具有指定线宽以及cap和join样式的默认值的坚实BasicStroke。

而且,它还会影响其他方法,例如Graphics2D.drawLine(int x1, int y1, int x2, int y2)Graphics2D.drawRect(int x, int y, int width, int height)

使用由Stroke对象返回的轮廓Shape的Graphics2D接口的方法包括draw和根据该方法实现的任何其他方法,例如drawLine,drawRect,drawRoundRect,drawOval,drawArc,drawPolyline和drawPolygon。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM