AbstractAction как WindowListener

Я пытаюсь отделить функцию от состояния в моем приложении GUI с помощью объектов Action. Мне удалось использовать их для создания элементов меню и кнопок с одинаковой функциональностью.

моя проблема заключается в следующем: Я хочу иметь одно и то же действие для пункта "выход" в моем меню и кнопки закрытия кадра.

В настоящее время я смог решить его, добавив следующий WindowListener в кадр:

private class MainWindowListener extends WindowAdapter {
    @Override
    public void windowClosing(WindowEvent e) {
        new ExitAction(model).actionPerformed(new ActionEvent(e.getSource(), e.getID(), "Exit"));
    }
}

разве нет проще более простой способ сделать это?

1 ответов


пересылка событий удобна, но вы также можете использовать dispatchEvent(), как показано здесь.

добавление: больше примеров, которые используют Action показаны ниже.

  • LinePanel, которая соединяет кнопки и клавиши.
  • ScrollAction который использует существующие действия качания.
  • KeyPadPanel что иллюстрирует действия пересылки.
  • GraphPanel который показывает действия редактора графиков в панели инструментов.