我最近实现了一个Action
切换业务功能启用状态的功能。每当用户调用该操作时,我都会设置一个布尔标志:“ willEnable ”来确定下一次调用是启用还是禁用该功能。同样,我更新动作名称、简短描述和图标以反映新状态。然后在我的actionPerformed(...)
方法中,我根据willEnable
.
- 这是正确的方法还是任何人都可以推荐更好的方法(因为我怀疑这是一个常见问题)?(我可以看到它
JToggleButton
充当两个状态按钮,但我希望此 Action 在 aJMenuBar
和 a上可见JButton
,所以不认为这是合适的)。
编辑
具体来说,像 IDEA 这样的应用程序是如何处理这个问题的?他们会使用多状态动作(如上)还是将不同Action
的动作换成给定的JButton
using setAction(Action)
?也许这种方法更好?
- 当更新一个动作的属性时,我可以依赖于初始化的 GUI 组件
Action
(例如JButton
)自动重绘自己吗?如果JButton
尺寸因此发生变化怎么办?我应该重新验证包含JPanel
自己吗? - 更改动作的名称是一件坏事吗?这是我可以更改 JButton 文本的唯一方法,但我意识到如果将操作放置在
ActionMap
.
提前致谢。