JavaFX — мощный инструмент для создания графического интерфейса пользователя (GUI) в Java. Это руководство рассматривает основные концепции работы с JavaFX и использование программы Scene Builder для быстрого создания дизайна.
Исправление ошибки кодировки
При запуске проекта может возникнуть ошибка кодировки, приводящая к некорректному отображению текста. Для решения этой проблемы можно указать более старую версию JDK (например, JDK 17 или 16) в настройках проекта (Edit Configuration).
Структура проекта JavaFX
В проекте JavaFX присутствуют следующие основные компоненты:
- pom.xml: Файл проекта Maven, содержащий зависимости (dependencies) — подключаемые библиотеки для работы с JavaFX, тестирования, баз данных и других расширений.
- HelloApplication.java: Основной класс приложения (в src/main/java/[имя пакета]). Содержит функцию main, вызывающую launch(), которая инициализирует приложение, используя параметры из функции start(). Функция start() задаёт размер, название окна и файл дизайна (FXML). Она определяет общие характеристики окна, но не содержит деталей отображаемого контента и функционала.
- Файлы FXML и контроллеры (.java): Каждое окно описывается файлом FXML (.fxml, дизайн) и файлом Java (.java, функциональность). Базовый проект обычно включает HelloView.fxml и HelloController.java. Другие контроллеры находятся на том же уровне, что и HelloApplication.java. Файлы FXML расположены в папке resources.
Scene Builder: создание дизайна
Для быстрого создания дизайна рекомендуется использовать Scene Builder (скачать с официального сайта Gluon). Он доступен для Mac и Windows.
После установки можно открыть файл FXML из проекта. Начальный дизайн очень прост. Существующие элементы можно удалить (Delete) и создать дизайн с нуля.
Работа с Scene Builder
Scene Builder включает:
- Вкладка с объектами: Содержит объекты для дизайна. Их можно перетаскивать на основную панель и изменять положение и размеры.
- Иерархия объектов: Отображает структуру элементов дизайна.
- Инспектор (Inspector): Позволяет изменять свойства выбранного объекта (текст, шрифт, размер, отступы). Раздел Properties содержит стили, раздел Layout — параметры расположения.
- Вкладка Code: Позволяет задать программное имя (ID) для объектов, обеспечивая доступ к ним из кода. Можно также указать обработчики событий, например, onAction для кнопок.
Добавление функциональности
Для добавления функциональности:
- Добавьте ID объектам в Scene Builder (вкладка Code).
- Создайте обработчики событий в контроллере (.java файл). Используйте шаблон кода (View -> Show Sample Controller Skeleton -> Full), который автоматически генерирует переменные для обращения к объектам из дизайна и пустые функции-обработчики.
Например, для изменения текста надписи при нажатии кнопки:
- В Scene Builder задайте ID кнопке (например, MainButton) и надписи (например, MainLabel).
- В контроллере создайте функцию btnClick(), вызываемую при нажатии MainButton. В этой функции, используя MainLabel.setText(), измените текст надписи.
После сохранения изменений в Scene Builder и контроллере, запуск проекта покажет результат. При необходимости, скорректируйте размеры окна в HelloApplication.java для соответствия дизайну в Scene Builder.
Создание приложений на JavaFX с использованием Scene Builder — простой и эффективный процесс. Scene Builder позволяет быстро создавать дизайн, а работа с ID и обработчиками событий в контроллере добавляет функциональность. Это руководство предоставляет базовые знания для начала работы.