我正在做简单的应用程序,并且有一个问题。
我想立即从代码中更改按钮的图标,但是在方法结束后它会起作用。
这是我的代码。
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);
如何让它立即发挥作用?
一些调度员还是什么?
由于
答案 0 :(得分:1)
使用javax.swing.Timer
而不是尝试在方法中间睡觉。您正在阻止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();
了解详情