1

我在 NetBeans 工作。单击切换按钮后,我想进行简单的 3-2-1 倒计时,并在按钮上显示倒计时。我对在 Java 中处理任何与时间相关的事情有点陌生,但是进行如此简单的倒计时的最简单方法似乎只是使用 Thread.sleep() 如下。程序按原样等待 3 秒,然后将按钮的文本打印到命令行,但是,按钮本身的文本并没有改变。知道为什么会发生这种情况以及如何解决吗?谢谢!

jToggleButton1.setText("3...");
System.out.println(jToggleButton1.getText());
try{
    Thread.sleep(1000);
}
catch(InterruptedException e){}
jToggleButton1.setText("2...");
System.out.println(jToggleButton1.getText());
try{
    Thread.sleep(1000);
}
catch(InterruptedException e){}
jToggleButton1.setText("1...");
System.out.println(jToggleButton1.getText());
try{
    Thread.sleep(1000);
}
catch(InterruptedException e){}
4

1 回答 1

2

您的问题是您正在事件调度线程中执行所有操作。所以UI没有机会更新。您需要使用 SwingWorker 或更好的摇摆计时器(具有 Action 回调的计时器)才能使这项工作正常进行

于 2012-04-04T22:05:13.363 回答