Java:禁用操作应禁用 JButtons 和 JMenuItems

发布于 2024-11-06 11:32:58 字数 310 浏览 5 评论 0原文

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

我想知道的是,如何通过禁用操作本身来禁用从操作创建的 JButtons 和 JMenuItems?

如果有帮助的话,我已经编写了一个 Action 包装类,它允许我直接从 Action 本身轻松创建 JButton 或 JMenuItem,这意味着我已经准备好了挂钩,可以在需要时向按钮或菜单项添加内容出现。

有什么建议吗?

I'm writing a fairly simple IDE for developing embedded programs (for iRobot's Create platform) and almost every single button and menu item is backed by Java's Action system.
This has made it easier to handle all the operations that the user will want without duplicating an operation's trigger.

What I would like to know is, how do I disable the JButtons and JMenuItems created from an Action by disabling the Action itself?

In case it helps, I've written an Action-wrapping class that allows me to easily create a JButton or JMenuItem straight from the Action itself, which means I have hooks in place already to add stuff to the buttons or menu items should the need arise.

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

或十年 2024-11-13 11:32:58

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

简短的答案:
http://sscce.org/

Short answer:
anAction.setEnabled( false );

Shorter answer:
http://sscce.org/

陌上青苔 2024-11-13 11:32:58

您可以将所有按钮和菜单项存储到 List;按钮 并将侦听器添加到操作:

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);
         }
      }
   }
});

You can store all buttons and menuitems to List<AbstractButton> buttons and add listener to action:

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);
         }
      }
   }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文