gpt4 book ai didi

java - 绘制 JPanel 隐藏菜单

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:52 26 4
gpt4 key购买 nike

我有一个 JPanel,可在其上执行自定义绘画,最多可能需要 15 秒。

enter image description here

问题是,当我在绘制 JPanel 时单击菜单时,绘制是在菜单上完成的,并且选项不可见。 (见图片中扭曲的文字)

enter image description here

如果我在绘制完成后单击菜单,不会出现意外行为,但是当我将鼠标指针移到不同的菜单上时,同样的事情会再次发生。例如,在绘画完成后,如果我点击“应用程序”,没有副作用发生,但是当我将鼠标指针移到“帮助”上时,就会出现前面描述的行为。如何避免这种情况?

我在单独线程中的 paintComponent() 方法之外执行绘画:

public class RandomIFSPanel extends JPanel {

RandomIFSPanelRenderer randomIFSPanelRenderer;

@Override
public void paintComponent(Graphics graphics) {
try {
randomIFSPanelRenderer.stop();
} catch (Exception e) {
}
randomIFSPanelRenderer = new RandomIFSPanelRenderer();
randomIFSPanelRenderer.start();
}

class RandomIFSPanelRenderer extends Thread {
@Override
public void run() {
for (int i = 0; i < numberOfPoints; i++) {
Graphics g=getGraphics();
g.setColor(Color.WHITE);
g.drawLine........
}
}
}

}

最佳答案

除了已经说过的关于事件调度线程的内容:

  • 您是直接调用 paintComponent() 方法吗?调用 repaint() 更“安全”。
  • 是否可以在调用 paintComponent() 时缓冲图像、绘制图像然后在面板上设置?

关于java - 绘制 JPanel 隐藏菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277673/

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