java - 计算机与计算机循环 Java Applet

标签 java applet awt delay event-dispatch-thread

我在我的 Java 游戏小程序中设置计算机与计算机循环时遇到问题。我已经尝试了 3 天来有效地在两个计算机玩家回合之间添加一秒的延迟,同时还重新绘制了棋盘。我尝试过 try/catch/thread.sleep 和 wait 以及其他一些技巧,但是没有一个成功。在程序的当前状态下,当启动计算机对计算机游戏时,程序会在游戏期间卡住(移动之间有一秒的延迟),然后在游戏结束时显示最终棋盘。我怎样才能使程序在每次移动后重新绘制/延迟?从我完成的所有阅读来看,我知道以下实现将不起作用,但我的问题是我无法弄清楚如何以其他方式做到这一点。 提前致谢!

以下代码位于我的 actionPerformed 监听器方法内

if (event.getSource() == startAIvAI)
    {
        drawing.clear();

        while (drawing.hasWon() == -1 && !drawing.isFull())
        {

            go1();
            repaint();

            try {
                Thread.sleep(1000);
            } catch (Exception e) {}

            go2();
            repaint();
            try {
                Thread.sleep(1000);
            } catch (Exception e) {}

        }


    }

最佳答案

当您调用Thread.sleep(1000);时,您认为您正在暂停哪个线程?假设您的代码以 if (event.getSource() == startAIvAI) 开头,则可能是一个处理事件。

您应该阅读本文以了解该怎么做:Sleep method locks my GUI

关于java - 计算机与计算机循环 Java Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37569381/

相关文章:

java - 如何在Java中使用非标准采样因子缩放JPEG图像?

java - getScaledInstance java Image 后的高度和宽度 -1

java - 无法将 INetAddress 编码为 xml

java - 嵌入式 Java Applet 在 JSPX 页面中返回 NullPointerException

java - Eclipse Java applet的.au声音剪辑文件的正确位置

java - 无法使小程序在 IntelliJ 中工作

java - Selenium (Java) 消息 "Unable to locate element"但元素和 XPath 存在

java.lang.NumberFormatException : For input string: "02/10/2015"

java - JPanel 格式问题

java - 多个 JTextfield 的空字符串验证