我正在尝试通过使用Action对象将GUI应用程序中的函数与状态分开。我已经成功地使用这些来创建具有相同功能的菜单项和按钮。
我的问题是:我想对菜单中的"退出"项和框架的关闭按钮使用相同的操作。
目前,我已经能够通过将以下窗口侦听器添加到框架来解决它:
private class MainWindowListener extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
new ExitAction(model).actionPerformed(new ActionEvent(e.getSource(), e.getID(), "Exit"));
}
}
难道没有更简单更直接的方法吗?
转发事件很方便,但您也可以使用 dispatchEvent()
,如下所示。
附录:下面显示了更多使用Action
的示例。
-
LinePanel
连接按钮和键。 - 利用现有摆动操作的
ScrollAction
。 -
KeyPadPanel
说明了转发操作。 -
GraphPanel
工具栏中显示图形编辑器操作。