Java [закрытая] структура программы Swing

6
задан cfans 1 July 2010 в 19:48
поделиться

4 ответа

Этот очень простой пример и обсуждение могут оказаться полезными.

2
ответ дан 17 December 2019 в 02:21
поделиться

Следование MVC - очень хорошая идея. Насколько я знаю, формальной структуры Java Swing для этого не существует, все они сосредоточены на «представлении» аспекта проблемы.

Что касается структуры приложения и MVC - лучший фреймворк, который я знаю, - это Griffon. Это не Java - это Groovy, но именно это делает его более привлекательным и легким для изучения. Griffon для приложения Swing - это то же самое, что Grails для веб-приложения.

Проверьте это на http://griffon.codehaus.org/

4
ответ дан 17 December 2019 в 02:21
поделиться

Swing имеет относительно хорошую настройку для Архитектура MVC, но на самом деле она сочетает в себе представление и контроллер. Компоненты в Swing могут иметь прикрепленные к ним слушатели, что является аспектом контроллера, а затем из этих слушателей (которые находятся внутри компонентов) вы можете соответствующим образом изменить представление и модель. Итак, чтобы ответить на ваш вопрос, да, Swing поможет с подходом MVC к приложению Java.

В Swing у вас по-прежнему есть две отдельные части для VC: компоненты и слушатели. Причина, по которой я говорю, что они объединены, заключается в том, что каждый компонент может иметь своего собственного слушателя. Эти слушатели обычно выполняют манипуляции и являются аспектом контроллера.Компоненты предназначены не только для просмотра на экране, но и для передачи информации этим слушателям. Нажатия кнопок, нажатия клавиш, изменения фокуса, закрытие окон и т. Д. Сообщаются слушателям соответствующего компонента компонентом. Вот простой фрагмент кода для кнопки со слушателем действия, который регистрирует нажатие кнопки.

ActionListener buttonListener = new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        // Controller code
    }
};

JButton button = new JButton("A Button");
button.addActionListener(buttonListener);

ActionListener по сути является контроллером, но получение ввода от пользователя зависит от кнопки . Вот где Swing сбивает с толку разницу между представлением и контроллером с точки зрения чистого MVC, но в то же время различие все еще сохраняется:

Слушатели - это контроллеры (минус прямая интерпретация input)
Компоненты - это представление (но интерпретируют ввод и передают его контроллеру)

Надеюсь, что это поможет :)

0
ответ дан 17 December 2019 в 02:21
поделиться

Был JSR (296), который описывает структуру для создания графического интерфейса Swing, но похоже, что о нем забыли, хотя посмотрите следующую статью:

http: // java .dzone.com / news / jsr-296-end-jframe

Я нашел следующие фреймворки, изначально основанные на нем, которые выглядят многообещающими:

Было бы интересно узнать, как это работает на практике. Надеюсь, они помогут.

0
ответ дан 17 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: