Swing - организация JFrames (или JDialogs ???) в моей программе - PullRequest
2 голосов
/ 28 декабря 2011

У меня есть основной класс контроллера, который показывает JFrame, содержащий JTable, и для каждой строки в этой таблице я должен показывать определенную «форму» при двойном щелчке.

Это вторичное окно будет нуждаться в информации оконкретная строка, выбранная в главной JTable, а также некоторые объекты, сохраненные в виде полей в классе контроллера.

Концептуальный пример того, что мне нужно сделать, заключается в следующем: у меня есть набор магазинов (перечисленных вJTable в основном JFrame) и, при двойном щелчке по строке, должно появиться другое окно, позволяющее управлять Магазином (отправка заказов, проверка поставок и т. д.).

Мой вопрося являюсь новичком в Swing: какая организация лучше всего подходит для такой модели?Должен ли я смоделировать другой JFrame и передать в качестве аргументов все данные, которые мне могут понадобиться (мне это действительно не нравится), или я должен передать только ссылку на класс Controller (я думаю, что это будет против шаблона MVC).Или, может быть, я должен использовать JDialog вместо другого JFrame?Дело в том, что действительно, функциональность, которая мне нужна из этого второго окна, слишком велика для диалога, я думаю ...

Я в замешательстве, любой совет / предложение / совет будет высоко ценится!Спасибо

С уважением

Ответы [ 2 ]

4 голосов
/ 28 декабря 2011

Или, может быть, я должен использовать JDialog вместо другого JFrame?

Бинго.

1 голос
/ 28 декабря 2011

Мне на самом деле не нравится идея иметь слушателя внутри моего класса Model (aka Shop) - реализации ActionListener.Я думаю, что я бы расширил класс JDialog (назовем его MyJDialog), а затем, когда дважды щелкнули по строке ... создайте новый экземпляр класса MyJDialog и передадим объект Shop в конструкторе.В классе MyJDialog вы можете изменять объект Shop, вызывая мутаторы (сеттеры).Более того, класс Shop должен иметь способ уведомления наблюдателей при изменении свойства - взгляните на PropertyChangeSupport .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...