Когда я собираю Java Swing GUI, у меня есть модель данных для каждого основного элемента GUI.Обратите внимание, что это не шаблон MVC.Это больше похоже на локальный шаблон MV.Если хотите, вы можете рассматривать слушатели GUI-элемента как «контроллер».
Каждая панель имеет свой собственный класс, в котором мы создаем экземпляры и размечаем ее компоненты.Теперь его легко поддерживать, а классы чистые, но как передать цепочку моих доменных объектов?
У вас правильная идея, хотя вам не нужно много проходить.
My JFrame
(или JApplet
) будет иметь связанный класс модели с полями глобального типа.Экземпляр этого модельного класса обычно передается дочерним элементам.Это позволяет дочерним элементам правильно реагировать при выборе опции меню (в качестве примера)
My JPanel(s)
будет иметь связанный класс модели, который поддерживает состояние текстовых или кнопочных дочерних элементов.
Более сложные дочерние элементы, такие как JList
или JTree
, уже имеют связанную модель данных.Я, вероятно, для удобства оберну эти связанные модели данных в класс модели JPanel
.
Дочерние элементы будут вызывать какой-то выбор слушателя выбора или действия.Некоторым из этих слушателей может понадобиться доступ к модельным классам помимо модельного класса, связанного с родителем.В этом случае вам придется передать экземпляры классов вашей модели слушателям.