java - 代码不执行

标签 java

我有这段代码

// If we click on an unfolded card
if (card.clicked == false) {
    clicksCount++;
    clickedCards[clicksCount - 1] = card;

    card.showCardImage();

    if (clicksCount == 2) {

        try {
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
        // Loop through clicked cards and if they don't have the
        // same ID fold them
        if (clickedCards[0].cardID != clickedCards[1].cardID) {

            for (int k = 0; k < clickedCards.length; k++) {
                clickedCards[k].setDefaultIcon();
                clickedCards[k].clicked = false;
            }

            failedAttempts.setText("Failed Attempts: "
                    + ++failedCount);
        }

        attemptsCount++;
        attempts.setText("Attempts " + attemptsCount);
        clicksCount = 0; // reset click counter

    }
}

它适用于我的 pexeso 游戏。第一张卡可以很好地显示卡的图像,但是当我第二次单击时,它不会显示它的图像。它只会等待,然后折叠第一张牌。

我知道这是因为线程 hibernate ,但不知道该怎么办。

如果有任何想法或建议,我会很高兴。

最佳答案

我猜这是一个 Swing GUI(你从来没有告诉我们)。如果是这样,那么您是对的:调用 Thread.sleep(...)在 Swing 事件线程上将使整个 GUI 进入休眠状态,包括所有 GUI 绘制。而是使用延迟设置为 1000 毫秒的 Swing 计时器。在您的计时器的 ActionListener 中,您将把卡改回原来的状态。您将通过 setter 方法告诉计时器不要重复,setRepeats(false) .

Swing Timer Tutorial .

关于java - 代码不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22721098/

相关文章:

java - Spring Data JPA 存储库

java - Apache Spark Broadcast 变量是 Broadcast 类型?不是RDD?

java - python中的DES无法使用pycrypto获得正确的编码数据

java - spring-cloud-dependency、spring-cloud-context 和 spring-cloud-commons 之间有什么区别?

java - Spring登录表单不起作用

java - 一大堆 Material 设计错误

Java条件检查中的特殊字符

java - 枚举定义中的静态上下文

java: 未经检查的对 getConstructor(java.lang.Class<?>...) 的调用

java - 如何在 Android MVVM 架构中实现对话框选择