在Stack Overflow上我读了很多关于使用Swing Actions而不是ActionListeners的内容,所以我开始在应用程序的菜单中使用它们。
在我介绍I18N之前,一切都很顺利,但却发现MenuItem的actionCommand会相应地改变语言。
以下是我的工作:
class ExitAction extends AbstractAction {
public void init() {
putValue(Action.NAME, messageSource.getMessage("app.gui.action.exitApplication"));
}
}
我的猜测是,我确实理解错了,这不是我想做的事情。
你能帮帮我吗?
答案 0 :(得分:3)
两件事......
首先,NAME
会影响按钮的文本,但如果未指定,还会设置actionCommand。属性。相反,我认为你是在ACTION_COMMAND_KEY
财产
其次,实际上应该没有必要,因为Action
是自包含的,帽子是,它是自己的ActionListener
,所以当actionPerformed
是在Action
上呼叫,您可以保证关联