Java jToggleButton.setText()不更改按钮上的文本
我在NetBeans工作。我想在点击一个切换按钮后做一个简单的3-2-1倒计时,在按钮上显示倒计时。我对Java中与时间相关的任何东西都有点陌生,但制作如此简单的倒计时的最简单方法似乎就是使用Thread.sleep,如下所示。程序按其应该的方式等待3秒钟,并将按钮文本打印到命令行,但是按钮上的文本本身不会改变。知道为什么会发生这种情况以及如何解决吗?谢谢Java jToggleButton.setText()不更改按钮上的文本,java,swing,netbeans,jtogglebutton,Java,Swing,Netbeans,Jtogglebutton,我在NetBeans工作。我想在点击一个切换按钮后做一个简单的3-2-1倒计时,在按钮上显示倒计时。我对Java中与时间相关的任何东西都有点陌生,但制作如此简单的倒计时的最简单方法似乎就是使用Thread.sleep,如下所示。程序按其应该的方式等待3秒钟,并将按钮文本打印到命令行,但是按钮上的文本本身不会改变。知道为什么会发生这种情况以及如何解决吗?谢谢 jToggleButton1.setText("3..."); System.out.println(jToggleButton1.getT
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){}
您的问题是,您正在事件调度线程中执行所有操作。因此UI没有机会更新。您需要使用SwingWorker或更好的swing timer,即具有动作回调的swing timer,使其正常工作以下是如何使用swing timer的示例: