如何在一个应用程序中管理GUI组件的启用/禁用



我正在做一个有很多按钮和菜单的应用程序,当附加到按钮和菜单项的操作可以或不能执行时,我希望启用和禁用它们。即保存按钮和保存菜单项只有在有未保存的更改时才会激活。

问题:我如何才能有效地做到这一点/哪种方法是正确的?

一种解决方案可以为每个按钮和菜单项设置一个私有变量,并根据需要启用/禁用它。其他解决方案可以是在一个数组中获取JToolBar和JMenu的所有组件,并对它们进行迭代,并根据需要启用/禁用。但我认为还有更好的解决方案。任何帮助或指导都将被取消。

编辑:问题不是如何启用/禁用单个按钮或菜单项,我会知道如何管理应用程序的所有按钮和菜单项的状态。实现这一目标的最佳方式是什么?。我已经解释了一些我一直在思考的解决方案,但没有一个能说服我。

Action类已经支持此功能。参见Action#isEnabledAction#setEnabled方法。调用setter将触发一个事件,在该事件上设置此Action的UI将启用/禁用自身。

Action可以被视为UI按钮/菜单项/…的模型。所有状态都存储并更新在模型中,视图需要反映这一点(MVC模式)。

1)禁用点击使用:

JButton#setEnabled(boolean)

JMenuItem#setEnabled(boolean)

2) 要禁用ActionListener一段时间,请在中使用私有布尔变量

public void actionPerformed (ActionEvent ae) {
    if (!enabled) return;
    // rest of code
}

相关内容

  • 没有找到相关文章

最新更新