设置JButton使其无法按下或临时禁用actionListener

时间:2011-05-26 12:52:46

标签: java swing jbutton actionlistener

我在JButtons上有actionListener,如果我按下其中一个,我想以某种方式禁用actionlistener而不删除它。

是否可以或者我必须删除而不是再次添加actionListener。

对不起。我忘了提,我设置了“button.setPressedIcon(icon)”,我不想显示这个图标。所以提到的soulution - button.setEnabled(false)不会工作。

3 个答案:

答案 0 :(得分:7)

JButton button = new JButton("hello");
button.setEnabled(false)

如果需要,这将禁用按钮

答案 1 :(得分:2)

  

是否有可能或者我必须删除并再次添加actionListener。

您可以在动作侦听器中添加一个布尔变量,如下所示:

boolean ignoreEvents = false;

然后将您的操作代码包装在

if (ignoreEvents)
    return;

ignoreEvents = true;

// your code here...

ignoreEvents = false;

确保代码正确同步


从用户界面的角度来看,您可能最好禁用按钮。

答案 2 :(得分:2)

除了自己禁用GUI元素外,您可以使用Action(或AbstractAction)类构建它们,并禁用/启用操作。无论从动作形成什么UI元素,都将相应地禁用/启用。