IT源码网

java之我想立即更改按钮的图标

wayfarer 2024年06月03日 程序员 65 0

我正在做简单的应用程序,有一个问题。

我想立即从代码中更改按钮的图标,但它在方法结束后起作用。

这是我的代码。

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


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!