Login witn .en_NZ locally | Login with .ru locally |
---|---|
![]() |
![]() |
Main window with .hr locally + YandexAPI city objects map |
---|
![]() |
Main window also with .en_NZ locally | Main window with .ru locally |
---|---|
![]() |
![]() |
Validation failed | Validation success |
---|---|
![]() |
![]() |
Заменить консольный клиент на клиент с графическим интерфейсом пользователя(GUI).
> В функционал клиента должно входить:
1. Окно с авторизацией / регистрацией.
2. Отображение текущего пользователя.
3. Таблица, отображающая все объекты из коллекции
├ Каждое поле объекта - отдельная колонка таблицы.
├ Строки таблицы можно `фильтровать` / `сортировать` по значениям любой из колонок.
└ Сортировку и фильтрацию значений столбцов реализовать с помощью `Streams API`.
4. Поддержка всех команд из предыдущих лабораторных работ.
5. Область, визуализирующая объекты коллекции
├ Объекты должны быть нарисованы с помощью графических примитивов с использованием
Graphics, Canvas или аналогичных средств графической библиотеки.
├ При визуализации использовать данные о координатах и размерах объекта.
├ Объекты от разных пользователей должны быть нарисованы разными цветами.
├ При нажатии на объект должна выводиться информация об этом объекте.
├ При добавлении/удалении/изменении объекта, он должен автоматически появиться/исчезнуть/измениться
на области как владельца, так и всех других клиентов.
└ При отрисовке объекта должна воспроизводиться согласованная с преподавателем `анимация`.
6. Возможность редактирования отдельных полей любого из объектов (принадлежащего пользователю).
└ Переход к редактированию объекта возможен из таблицы с общим списком объектов и из области с визуализацией объекта.
7. Возможность удаления выбранного объекта (даже если команды remove ранее не было).
> Перед непосредственной разработкой приложения необходимо `согласовать прототип интерфейса` с преподавателем.
└ Прототип интерфейса должен быть создан с помощью средства для построения прототипов интерфейсов(`mockplus`, draw.io, etc.)
23-12-2004
- Интерфейс должен быть реализован с помощью библиотеки `JavaFX`
- Графический интерфейс клиентской части должен поддерживать
├ `русский`
├ `чешский`
├ `хорватский`
├ `английский` (Новая Зеландия)
└> языки / локали.
- Должно обеспечиваться корректное отображение чисел, даты и времени в соответстии с `локалью`.
└ Переключение языков должно происходить `без перезапуска` приложения. Локализованные ресурсы должны `храниться в классе`.
Отчёт по работе должен содержать:
1) Текст задания.
2) Диаграмма классов разработанной программы.
3) Исходный код программы.
4) Выводы по работе.
Вопросы к защите лабораторной работы:
1. Компоненты пользовательского интерфейса. Иерархия компонентов.
2. Базовые классы `Component`, `Container`, `JComponent`.
3. Менеджеры компоновки.
4. Модель обработки событий. `Класс-слушатель` и `класс-событие`.
5. Технология `JavaFX`. Особенности архитектуры, отличия от `AWT` / `Swing`.
6. `Интернационализация`. `Локализация`. Хранение локализованных ресурсов.
7. Форматирование локализованных числовых данных, текста, даты и времени.
└> Классы `NumberFormat`, `DateFormat`, `MessageFormat`, `ChoiceFormat`.