Я создаю свое первое приложение Swing и пытаюсь выяснить, как мой JDialogs - вызывается исключительно при выборе пользователем JMenuItem - может обновлять компоненты в главной клиентской области JFrame, которая является родительским "окном"все приложение.
Это дизайн, который я придумал, но не знаю, является ли его: (1) просто плохим, (2) не стандартным (а значит, лучшим) способом, или (3) если я здесь полностью вне базы.Любые предложения приветствуются.
В основном пользователь выбирает JMenuItem, который запускает JDialog.Пользователь взаимодействует с компонентами в диалоговом окне, а затем нажимает кнопку «Готово».Если все проверяется, JDialog закрывается, и я хочу, чтобы родительское окно (JFrame) обновило свое состояние (и, в конечном итоге, распространилось на его компоненты).
Мой дизайн:
Имейте AppStateController
, который является членом подкласса JFrame (мое приложение).Затем я создал бы подкласс AppStateChangeListener
и AppStateChange
EventObject, чтобы всякий раз, когда диалог проверялся и закрывался, он запускал событие AppStateChange
.Поскольку родительский JFrame является единственным зарегистрированным прослушивателем этого события, я мог бы определить обработчик, который получает событие, переданное ему.Я хотел бы убедиться, что у AppStateChangeEvent
было достаточно метаданных, чтобы описать все возможные изменения.
Теоретически мне нравится такой подход: он должен быть чистым и свободным от вызовов типа «спагетти» для нескольких элементов управления каждый разпроисходит другое событие.Однако, я боюсь, что это может быть излишним.
Что диктуют лучшие практики здесь?Я не совсем человек с графическим интерфейсом!