Java для профи: создание второго окна в Scene Builder

Расширение функциональности приложения

В предыдущем уроке было создано приложение. Теперь добавим функциональности. Иерархия объектов приложения представлена деревом, а контроллер отвечает за функционал. Используем пустой класс Контроллер для реализации логики взаимодействия с элементами основного окна. Для каждого окна будет свой контроллер.

Настройка элементов интерфейса в Scene Builder

Элементам интерфейса (кнопки, поля) зададим ID:

  • Кнопка «Войти»: login_button
  • Кнопка «Регистрация»: signup_button
  • Поле логина: login_field
  • Поле пароля: password_field

Сохраним изменения. Scene Builder позволяет сгенерировать скелет кода контроллера. Выберите View > Show Sample Controller Skeleton > Full. Скопируйте сгенерированный код и вставьте его в класс Контроллер, заменив существующий код (кроме пакета и импортов).

Обработка событий

В файле XML изменим путь к контроллеру на полный путь с учетом пакета: sample.Контроллер.

Добавим обработчик события для кнопки «Войти»:

login_button.setOnAction(event -> {
    System.out.println("Вы нажали на кнопку "Войти"");
});

Запустим приложение. При нажатии на кнопку «Войти» в консоли отобразится сообщение.

Создание второго окна

Создадим файл *.fxml для второго окна. Скопируем содержимое файла sample.fxml в новый файл, например, home.fxml. Удалим ненужные элементы (кнопки, поля). Добавим текст «Привет, мир!» и изображение.

Для добавления изображения:

  1. Создайте папку images в папке проекта.
  2. Поместите изображение в папку images.
  3. Добавьте компонент ImageView в home.fxml.
  4. Укажите путь к изображению в свойстве image компонента ImageView.

Добавим ID image_home компоненту ImageView. Создадим контроллер HomeКонтроллер для второго окна. Можно использовать сгенерированный Scene Builder’ом скелет кода. В файле home.fxml укажите путь к новому контроллеру: sample.HomeКонтроллер.

Создано второе окно приложения, реализована обработка событий и работа с изображениями в JavaFX.

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