问题描述
||
我在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元素都将相应地被禁用/启用。