设置JButton使其不能被按下,或暂时禁用actionListener

问题描述

|| 我在JButtons上有actionListener,如果我按下其中一个,我想以某种方式禁用其他按钮上的actionlistener而不删除它。 是否可能,或者我必须删除然后再将它们添加为actionListener。 抱歉。我忘了提,我设置了\“ button.setpressedIcon(icon)\”,但我不想显示此图标。所以提到的解决方案-button.setEnabled(false)将无法工作。     

解决方法

  有可能还是我必须删除然后再将它们添加为actionListener。 您可以像这样在操作侦听器中添加一个布尔变量:
boolean ignoreEvents = false;
然后将动作代码包装在
if (ignoreEvents)
    return;

ignoreEvents = true;

// your code here...

ignoreEvents = false;
只要确保代码正确同步即可。 从用户界面的角度来看,最好禁用按钮。     ,
JButton button = new JButton(\"hello\"); 
button.setEnabled(false)
如果需要,将禁用该按钮     ,除了禁用GUI元素本身之外,您还可以使用
Action
(或
AbstractAction
)类构造它们,并禁用/启用操作。从操作中形成的任何UI元素都将相应地被禁用/启用。