Java:特定位置的时间延迟 - 在错误的位置工作

时间:2014-04-28 16:01:09

标签: java user-interface time delay thread-sleep

我不知道标题是否真的让我的问题清楚。我正在制作纸牌游戏应用程序。当用户和计算机都已关闭时,他们应该在屏幕上停留一段时间,直到计算机播放下一张卡。 我尝试在try catch中使用thread.sleep()来解决这个问题。而且它基本上做了它应该做的事情,但它并不是我想要它做的事情。计算机播放一张卡然后关闭第二张卡之间的延迟不是。它是用户按下按钮(用于卡)和屏幕上该卡的外观之间。

以下是相关代码:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    jLabel1.setIcon(//new Icon of the card);
    jPanel1.remove(jButton1);
    jLabel2.setIcon(//new Icon of the card);
    if(//proving whether the computer played the highest amount off)
    {
        disableButtons();

            sleep();//waiting for a certain time...
            playCard();//...until playing the next card off
    }
}                                        




       public void sleep()
{   

        try
        {
            Thread.sleep(500);
        } catch (InterruptedException e)
        {
        }
}

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow。如果您在UI线程中睡眠,则在您再次进入主循环之前,UI将不会反映所有绘图命令。查看swing timers