我试图通过使用Action对象将功能与GUI应用程序中的状态分开。我已经成功地使用它们来创建具有相同功能的菜单项和按钮。
我的问题是:我希望菜单中的“退出”项和框架的关闭按钮都具有相同的操作。
目前,我已经可以通过将以下WindowListener添加到框架中来解决此问题:
private class MainWindowListener extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
new ExitAction(model).actionPerformed(new ActionEvent(e.getSource(), e.getID(), "Exit"));
}
}
有没有更简单,更直接的方法来做到这一点?
最佳答案
转发事件很方便,但是您也可以使用dispatchEvent()
,如here所示。
附录:下面显示了更多使用 Action
的示例。
LinePanel
连接按钮和键。 ScrollAction
利用现有的Swing操作。 KeyPadPanel
说明了转发操作。 GraphPanel
在工具栏中显示图形编辑器的操作。 关于java - AbstractAction作为WindowListener,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10491400/