Java:禁用Action应禁用JButtons和JMenuItems

时间:2011-05-12 08:00:08

标签: java action jbutton jmenuitem

我正在编写一个相当简单的IDE来开发嵌入式程序(用于iRobot的Create平台),几乎每个按钮和菜单项都由Java的Action系统支持。 这样可以更轻松地处理用户想要的所有操作,而无需复制操作的触发器。

我想知道的是,如何通过禁用Action本身来禁用从Action创建的JButton和JMenuItem?

如果它有帮助,我编写了一个Action-wrapping类,它允许我直接从Action本身轻松创建一个JButton或JMenuItem,这意味着我已经有了一些钩子来添加东西到按钮或菜单项如果需要的话。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

简短回答:
   anAction.setEnabled( false );

更短的回答:
http://sscce.org/

答案 1 :(得分:0)

您可以将所有按钮和菜单项存储到List<AbstractButton> buttons并添加侦听器以执行操作:

action.addPropertyChangeListener(new PropertyChangeListener() {
   public void propertyChange(PropertyChangeEvent evt) {
      if (evt.getPropertyName().equals("enabled")) {
         boolean isEnabled = (Boolean)evt.getNewValue();
         for (AbstractButton button : buttons) {
            button.setEnabled(isEnabled);
         }
      }
   }
});