gpt4 book ai didi

java - 如何通过paintComponent方法在JPanel中绘制图形?

转载 作者:行者123 更新时间:2023-11-30 03:49:31 28 4
gpt4 key购买 nike

我需要在 Java 的 JPanel 中绘制一些线条,我试图在 paintComponent() 方法之外的另一个方法中绘制它们,以便从另一个方法调用它类,但我遇到了一个问题,因为绘制图形需要一个 Graphics 对象,我尝试使用 this.getGraphics() 但对我不起作用:

public class Panel extends JPanel{
public void drawLine(int x1, int y1, int x2, int y2){
this.getGraphics().drawLine(x1, y1, x2, y2);
}
}

请问有什么建议吗?

最佳答案

"any suggessions please ?"

保留 Line2D 的列表Panel 中的对象类(class)。 ( List<Line2D> )

迭代 paintComponent 中的列表方法

Graphics2D g2 = (Graphics2D)g;
for (Line2D line : lines) {
g2.draw(line);
}

然后你就可以有一个方法addLine(Line2D line) ,这会向列表中添加一行和 repaint()

public void addLine(Line2D line) {
lines.add(line);
repaint();
}
<小时/>

"how to draw graphics in JPanel out of paintComponent method?"

不要。所有自定义绘画都应在 Graphics 的范围内完成paintComponent 中提供的对象方法。所以你需要预测可能画什么,然后画出来。如上所示,这可以是动态的。

关于java - 如何通过paintComponent方法在JPanel中绘制图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24772268/

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