jToggleButton.setText()不更改按钮上的文本

时间:2012-04-04 21:49:23

标签: java swing netbeans jtogglebutton

我在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){}

1 个答案:

答案 0 :(得分:2)

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