您如何正确使用Thread.sleep()?

时间:2019-05-30 22:10:33

标签: java sleep thread-sleep

我正在尝试编写一种西蒙说的代码,在该代码中您重复在屏幕上闪烁的颜色。所以我想将盒子从深绿色变成闪烁的亮绿色,但是然后使用Thread.sleep()使其等待2秒钟,直到我变回深绿色。但是我的代码不起作用。有人可以帮我找出原因吗?

您可以在我的代码中看到,我只尝试了绿色。我只是不明白为什么它不起作用。

private void start() 
{
    WinOrLose.setText("Level: " + level);
    randomInput.add(((int)((Math.random()*4)+1)));
    for(int i : randomInput)
    {

        if(i == 1)
        {
            GreenBox.setBackground(green);
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
Logger.getLogger(SimonSays.class.getName()).log(Level.SEVERE, null, ex);
            }
            GreenBox.setBackground(darkGreen);
        }
        else if(i == 2)
        {
            RedBox.setBackground(red);
        }
        else if(i == 3)
        {
            YellowBox.setBackground(yellow);
        }
        else if(i == 4)
        {
            BlueBox.setBackground(blue);
        }
    }
}

我希望它先打印色阶:然后将色阶打印到WinOrLose框中,然后闪烁绿色,红色,蓝色或黄色的随机颜色2秒钟,然后再变回深色。我得到的是等待2秒钟以打印Level:1,然后完全不将盒子更改为明亮的颜色。 (在我的代码中,如果随机颜色现在是绿色,直到我弄清楚它是如何工作的,我才使用Thread.sleep()。)此外,未提供某些代码段,例如某些对象和对象的声明和实例化。

0 个答案:

没有答案