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который показывает действия редактора графиков в панели инструментов.