java,需要暂停程序0.5秒

时间:2016-12-30 14:29:13

标签: java pause

所以我正在制作“西蒙游戏”,我需要一个java代码暂停程序0.5秒,向用户显示他需要按下的按钮。

  greenButton.setBackground(Color.GREEN);
             //need to stop here
             press = true;

4 个答案:

答案 0 :(得分:1)

Thread.sleep(500);

有关详细信息,请参阅this

答案 1 :(得分:1)

您可以使用Thread.sleep(500)等待0.5秒.....并在另一个线程中向用户显示按钮.....或者您可以设置一个挥发性布尔标志,当您启动时向用户显示他需要点击的按钮....并暂停所有其他线程....一旦用户点击按钮,就应该取消设置标志,并通知所有其他线程。

答案 2 :(得分:0)

由于这看起来像是Swing,使用Swing Timer暂停而不冻结程序。

int delayTime = 500; // for 500 msecs
new Timer(delayTime, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // TODO: code to be delayed goes here

        // stop the timer from repeating
        ((Timer) e.getSource()).stop();
    }
}).start();

答案 3 :(得分:0)

您可以使用CountDownLatch API https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html

例如。在第一个线程中,创建一个计数器为1的锁存器,并将其传递给处理UI的第二个线程。然后在第一个线程中,在锁存器上调用await()。这将导致第一个线程等待计数变为零。 同时,在第二个线程中,您可以处理UI事件,在那里您可以执行latch.countDown()。一旦计数变为零,线程1将再次变为活动状态。 您还可以在第一个线程中提供超时。如果发生超时,Thread One将退出等待和恢复处理。