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

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

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

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

Есть ли возможность как-то централизировать все эти вызовы?
...
Рейтинг: 0 / 0
Организация swing проекта
    #38511538
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Организация swing проекта
    #38511569
sanchoflat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ.
Самый сложный пока сложен для меня) А вот с абстрактным родителем интересно попробовать.

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

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


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