gpt4 book ai didi

java - 无法在 JPanel 上绘图

转载 作者:行者123 更新时间:2023-12-01 18:17:49 26 4
gpt4 key购买 nike

我正在尝试在 JPanel 上绘图。当调用函数drawField时,它什么也不绘制。可能是什么原因造成的?

private void drawField() {
try {
Graphics2D field = (Graphics2D) jPanel2.getGraphics();
field.drawLine(0, 0, 100 , 100);
}catch(Exception exc) { exc.printStackTrace();}
}

它是从主类构造函数调用的。

最佳答案

重写面板上的paintComponent方法。

您无法在构造函数中的 JPanel 上绘图。现在这样做并不合适,一旦绘制了面板,您绘制的任何内容都将被覆盖。一旦它变得可见,就会发生这种情况,因此您永远不会看到您绘制的内容。

相反,重写 paintComponent 方法,如下所示:

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawLine(0, 0, 100, 100);
}

作为绘制面板本身的过程的一部分,在事件调度线程上调用此方法。每次需要再次绘制面板内容时都会调用此方法,因此您可以放心,您的线条将始终显示。

如果背景是黑色,还请记住将绘图颜色设置为不同的颜色,因为它将默认为该颜色。

关于java - 无法在 JPanel 上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28646767/

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