动态更改jButton图标

Fal*_*lso 3 java swing jbutton

我有一个程序可以检测某些机器何时在线并创建一个带有绿色"在线"图标的按钮来显示这一点.我想添加功能以定期检查此机器是否仍在线,如果不是,请将图标更改为我已定义的"离线"图标.

mKo*_*bel 8

I know how to set the icon, however I can't figure out a way to do it 
once the button has already been displayed
Run Code Online (Sandbox Code Playgroud)

可能你在Swing中遇到Concurency问题,这意味着所有的Swing代码都必须在EDT上完成

那么你必须包装myButton.setIcon(myIcon)invokeLater(),例如

SwingUtilities.invokeLater(new Runnable() {

    @Override
    public void run() {
        myButton.setIcon(myIcon);
    }
});
Run Code Online (Sandbox Code Playgroud)


And*_*son 5

我有一个程序可以检测某些机器何时在线并创建一个带有绿色“在线”图标的按钮来显示这一点。

使用 aJToggleButton代替,如此1此处2 所示

一旦按钮已经显示,我就想不出办法来做到这一点。

切换状态并触发动作事件doClick()或交替setSelected(boolean)

截图