Я как бы новичок в программировании, и у меня возник такой вопрос. Как правильней открыть новое окно по кнопке используя javaFX? У меня есть первоначальное оформление окна в sample.fxml, в классе Main я его запускаю, по определенной кнопке из sample у меня должно открыться второе окно (из другого fxml файла), так вот как это правильно реализовать?
Как я понимаю мне надо в контроллере написать обработчик событий на открытие окна по нажатию нужной кнопки, и уже в sample задать этой кнопке метод открытия нового окна, это правильный подход? или какая логика при подобных задачах?
Спасибо.
Что бы добавить событие, срабатывающее по нажатию кнопки, в fxml добавьте параметр для кнопки onAction="#openNewStage" (окно - это stage, содержимое окна - scene), далее IDE подсветит Вам красным и предложит самой сделать его в java файле (если в fxml вы указали контроллер конечно).
Далее в этом методе вам нужен код идентичный тому, что был в методе start, которым вы отобразили основное окно, за одним исключением, там primaryStage передавался готовый, тут его нужно будет создать Stage newStage = new Stage().
Немного забегая вперед, при клике на кнопку будет каждый раз вызываться fxmlLoader.load() - это не самая быстрая команда, попробуйте сделать код так, что бы она вызывалась только один раз, а потом использовался ее результат полученный ранее.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости