在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时,可以确保关联

07-25 21:39