我正在做简单的应用程序,有一个问题。
我想立即从代码中更改按钮的图标,但它在方法结束后起作用。
这是我的代码。
public void actionPerformed(ActionEvent e) {
..
*some code*
..
Buttons[Id].setIcon(images.get(Id));
Thread.currentThread().sleep(2000);
..
*Some code*
..
}
我点击按钮,它调用这个 ActionListener
方法 actionPerformed
。
Buttons[Id].setIcon(images.get(Id));
应该更改图标,但在
Thread.currentThread().sleep(2000);
怎样才能让它立即生效?
某个调度员还是什么?
谢谢
请您参考如下方法:
使用javax.swing.Timer
而不是尝试在方法中间 hibernate 。您正在阻止 EDT 设置图标。
Buttons[Id].setIcon(images.get(Id));
Timer timer = new Timer(2000, new ActionListener(){
public void actionPerformed(ActionEvent e) {
// do something
}
});
timer.setRepeats(false);
timer.start();
查看更多信息 How to Use Swing Timers