gpt4 book ai didi

java - drawLine() 方法不绘制任何东西

转载 作者:行者123 更新时间:2023-11-30 08:12:08 26 4
gpt4 key购买 nike

所以我将这个类放在一个 JPanel 实现类中。

    private static class Line extends JComponent {

private static final long serialVersionUID = 1L;

@Override
public void paintComponent(Graphics g) {
System.out.println("Pozvan paintComponent()");
g.setColor(Color.YELLOW);
g.drawLine(20, 20, 100, 20);
super.paintComponent(g);
}
}

这是创建 Line 的单个实例的代码片段:

        Line line = new Line();
line.setOpaque(true);
add(line);

我真的不知道我在这里做错了什么。当我绘制一个矩形时,一切都画得很好。

最佳答案

when I set the height to remotely big number it works.

Swing 组件的默认大小为 (0, 0)。由于大小为 0,因此没有任何内容可绘制。

g.drawLine(20, 20, 100, 20);

使用上述信息,这意味着您的组件需要的大小为 (120, 40)。也就是说,宽度 = 20 + 100,高度 = 20 + 20,以便绘制组件。

I added line.setBounds(20, 20, 80, 50); 

只有部分线条会被绘制,因为您将宽度设置为 80,而不是 120。

阅读 Swing 教程中关于 Custom Painting 的部分了解更多信息和示例。

关于java - drawLine() 方法不绘制任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com