我在JButtons上有actionListener,如果我按下其中一个,我想以某种方式禁用actionlistener而不删除它。
是否可以或者我必须删除而不是再次添加actionListener。
对不起。我忘了提,我设置了“button.setPressedIcon(icon)”,我不想显示这个图标。所以提到的soulution - button.setEnabled(false)不会工作。
答案 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元素,都将相应地禁用/启用。