Структура приложения Swing

224
10 ноября 2019, 03:10

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

  1. Создается Jframe, в нем JPanel, потом на этой панели некоторые
    элементы.
  2. Здесь происходит выбор начального значения из заданного списка, это значение нужно для создания следующей сцены.
  3. Стираем все, и в зависимости от полученного значения рисуем еще 5-10-15 элементов, из которых пользователь тоже что то выбирает, формируя список (что то типа ArrayList), который передается дальше.
  4. Проверяем полученный и эталонный результат, снова стираем все элементы графики, выдаем результаты проверки. При необходимости уходим в цикл с пункта 2.

Вообще человек выбирает объект, потом выбирает из каких компонентов он состоит, и я это проверяю, показываю какие компоненты лишние, каких не хватает для правильного ответа. Это грубое описание того, что нужно.

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

Как бы мне спроектировать все это так, чтобы и код был не очень большим в каждом файле, и понятно было для сопровождения. Может, каждую отрисовку экрана запускать как Thread или вообще Callable. Как корректно организовать перерисовку экрана, чтобы в идеале это как функции вызывать из одного места (на каждом этапе вернулось значение - стерли все и начали рисовать заново с учетом полученных данных). Слушателей обрабатывать в самом классе или вывести их всех в отдельный класс (обрабатывать нужно будет и мышь и текстовые поля, там может быть до 50 элементов, в каждом 3-4 поля со строковыми или численными значениями).

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

Answer 1

Нашел таки хороший пример, решающий мою задачу.

http://pacificsimplicity.ca/blog/simple-state-switching-java-example-using-jpanels-and-jbuttons

READ ALSO
Запись нескольких медиа потоков в 1 фаил Kurento

Запись нескольких медиа потоков в 1 фаил Kurento

Я пользуюсь Kurento, пытаюсь записывать несколько видео потоков в один файлhttps://doc-kurento

128
GraphQL Expected type to be a GraphQLInputType, but it wasn't!

GraphQL Expected type to be a GraphQLInputType, but it wasn't!

Я использую GraphQL в веб-сервисе на Spring Boot и мне надо написать мутацию для обновления объектов InvoiceВ схеме эти типы определены следующим образом:

136
Не работает метод getSupportFragmentManager()

Не работает метод getSupportFragmentManager()

Я хочу реализовать Recycler View, в котором по нажатии на item будет появляться фрагментНо я у меня не работает метод getSupportFragmentManager(), я пытался подставлять...

175