gpt4 book ai didi

java - 强制 Java 刷新 Java Swing GUI

转载 作者:行者123 更新时间:2023-11-29 07:17:50 26 4
gpt4 key购买 nike

我编写了两台计算机在黑白棋中互相对战的代码,但是当它们互相对战时。棋盘仅在游戏结束后更新。

通过谷歌搜索,我知道它与 AWT 事件线程有关,但我仍然不知道如何强制 JFrame 刷新。

我的函数通过更改图标然后调用 revalidate 和 repaint 来工作。任何指针都会很棒。

最佳答案

如果您从 actionPerformed() 开始您的 AI 游戏,它将在 EDT 线程中执行。您应该通过启动一个新的 Thread 将您的逻辑(以及您的 sleep() 的逻辑移到 EDT 线程之外,以允许 Swing 正确地重新绘制 UI 并将更新发布到 UI,如下所示:

SwingUtilities.invokeLater(new Runnable() {
public void run() {
myUI.update(); // repaint(), etc. according to changed states
}
});

同时考虑使用 javax.swing.SwingWorkerjavax.swing.Timer 并查看 Concurrency in Swing .

关于java - 强制 Java 刷新 Java Swing GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073823/

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