Больше дизайна свинга и действий - PullRequest
2 голосов
/ 13 июня 2010

Я довольно новичок в программировании на графическом интерфейсе, так что я читал все посты на этом сайте о свинге и дизайне. Снова и снова отвечали, что для действий нужно иметь многотонный класс. Вот так: (GUI * JFrame)

альтернативный текст http://img341.imageshack.us/img341/255/skjermdump.png

Теперь это прекрасно работает для односторонних действий, таких как OpenDialog. Но действия для кнопок в DialogA и B должны иметь доступ ко всем компонентам (их будет много) в своем диалоговом окне и к controller. Вот где я застрял.

Единственный здравомыслящий способ, который я вижу, - это поместить его в DialogA/B , но тогда мне нужно будет пропустить controller до конца, через классы, которые даже не нуждаются в нем, и это достану все спагетти. На самом деле не хочу этого.

Кто-то должен был столкнуться с этой проблемой раньше. Так, где я должен поместить это Action? Или мне просто уронить весь дизайн?

Редактировать: получил хороший ответ из других мест. Решено.

1 Ответ

1 голос
/ 13 июня 2010

В MVC контроллер и вид обращаются друг к другу, контроллер экранирует вид от модели. Лучше всего сделать ваш ActionHandler анонимным классом и просто перезвонить ему, который, в свою очередь, вызывает контроллер.
Если вы действительно хотите, вы можете иметь суперкласс Controller, который имеет общие сообщения для отправки сообщения и передачи в HashMap, что дает вам хорошее разделение кода, но добавляет сложности и убирает проверку типов.

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