JavaFX и Scene Builder: GUI разработка в Java + решение ошибок кодировки

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 для кнопок.

Добавление функциональности

Для добавления функциональности:

  1. Добавьте ID объектам в Scene Builder (вкладка Code).
  2. Создайте обработчики событий в контроллере (.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 и обработчиками событий в контроллере добавляет функциональность. Это руководство предоставляет базовые знания для начала работы.

Что будем искать? Например,программа