在Stack Overflow上,我读到了很多有关使用Swing Actions而不是ActionListeners的信息,因此我开始在应用程序菜单中使用它们。
在我介绍I18N之前,一切工作都很好,只是发现MenuItem的actionCommand相应地更改了语言。
这是我的工作:
class ExitAction extends AbstractAction {
public void init() {
putValue(Action.NAME, messageSource.getMessage("app.gui.action.exitApplication"));
}
}
我的猜测是,我确实了解某些错误,而这并不是我想做的方式。
你能帮我么?
最佳答案
两件事情...
首先,NAME
影响按钮的文本,但如果未指定,还将设置actionCommand。属性。相反,我认为您是在ACTION_COMMAND_KEY
属性之后
其次,实际上应该几乎不需要它,因为Action
是独立的,帽子是它自己的ActionListener
,因此当在actionPerformed
上调用Action
时,可以确保关联