Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Организация swing проекта / 5 сообщений из 5, страница 1 из 1
24.12.2013, 21:15:40
    #38511527
sanchoflat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация swing проекта
Здравствуйте, делаю swing приложение и возникло небольшая проблема с организацией проекта.

Есть класс Gui наследованный от JFrame, где создаю само окно приложения. 3 класса StartPanel, ResPanel, HelpPanel наследуемые от JPanel которые должны появляться на фрейме.

На StartPanel есть 2 кнопки, которые собственно должны стирать с фрейма StartPanel и рисовать Res или HelpPanel.

Но вариант в обработчики событий для StartPanel вызывать и стирать все панели. В ResPanel и HelpPanel вызывать StartPanel.

Есть ли возможность как-то централизировать все эти вызовы?
...
Рейтинг: 0 / 0
24.12.2013, 21:42:57
    #38511538
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация swing проекта
http://www.oracle.com/technetwork/articles/javase/wizard-136789.html
http://stackoverflow.com/questions/88889/recommend-a-java-wizard-library

Тут вообще я сразу варианта эдак 4 вижу. Зависит всё от перспектив проекта.
От наиболее правильного, но максимально сложного, до наиболее примитивного, но не особо подходящего для будущих изменений.

1) Сложный способ делать полноценный MVP или MVVM, где отдельными JavaBeans с PropertyChangeSupport будет реализована модель приложения. Обработчики нажатия кнопок (лучше таки использовать Action вместо ActionListener) обновляют Модель, которая через PropertyChangeListener нотифицирует Presenter - а тот в свою очередь обновляет контейнер заменяя одну панель на другую. CardLayout, кстати, тоже рулит.

2) Более простой способ - не использовать модель, но связать все вложеные страницы, через абстрактного родителя. Внешний контейнер получает события из конкретных реализаций и дейстует исходя из этого. Т.е. все вложеные страницы наследуются от AbstractWizardPage, а внешний GUI класс - Wizard, взаимодейтсвует с ними единообразно.

3) Простейший способ - Action реализовать в главном классе а использовать во StartPage.

4) Как сделаете, так сделаете. Какая разница? Со временем поймете что с этим кодом не так и тогда придет и понимание как можно было бы сделать лучше.
...
Рейтинг: 0 / 0
24.12.2013, 22:11:12
    #38511569
sanchoflat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация swing проекта
Спасибо за ответ.
Самый сложный пока сложен для меня) А вот с абстрактным родителем интересно попробовать.

Конечно сейчас я напишу вариант, где все зависит друг от друга, но завтра уже будет непонятно, что это, а что то. Вот решил уделить время для централизации всех команд и структуры. Все равно потом придется придавать человеческий вид)

А проект вряд ли имеет какое то дальнейшее развитие. Скорее для портфолио.
...
Рейтинг: 0 / 0
24.12.2013, 22:21:54
    #38511573
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация swing проекта
Для портфолио, хорошо бы следовать KISS и SOLID.
Код должен быть как можно более простым и лаконичным. Но классы при этом должны быть минимально связаны друг с другом.
...
Рейтинг: 0 / 0
24.12.2013, 22:29:32
    #38511576
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Организация swing проекта
И ещё. Какой нафиг Swing для портфолио? Пилите сразу JavaFX
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Организация swing проекта / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]