Расширение функциональности приложения
В предыдущем уроке было создано приложение. Теперь добавим функциональности. Иерархия объектов приложения представлена деревом, а контроллер отвечает за функционал. Используем пустой класс Контроллер для реализации логики взаимодействия с элементами основного окна. Для каждого окна будет свой контроллер.
Настройка элементов интерфейса в 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. Удалим ненужные элементы (кнопки, поля). Добавим текст «Привет, мир!» и изображение.
Для добавления изображения:
- Создайте папку images в папке проекта.
- Поместите изображение в папку images.
- Добавьте компонент ImageView в home.fxml.
- Укажите путь к изображению в свойстве image компонента ImageView.
Добавим ID image_home компоненту ImageView. Создадим контроллер HomeКонтроллер для второго окна. Можно использовать сгенерированный Scene Builder’ом скелет кода. В файле home.fxml укажите путь к новому контроллеру: sample.HomeКонтроллер.
Создано второе окно приложения, реализована обработка событий и работа с изображениями в JavaFX.