抽象操作作为窗口侦听器



我正在尝试通过使用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工具栏中显示图形编辑器操作。

最新更新