По нажатию кнопки должна появляться новое окно, и закрываться старое.
Я использую контроллеры для каждого FXML. Обоработчик нажатия на кнопку также в контролле, а создание окна в main.
Желательно с помощью FXMLLoader.load(getClass().getResource("file.fxml"))
Если окно должно быть основным, а не модульным, то контроллеру кнопки надо иметь объект сцены.
Имея объект сцены вы сможете убрать оттуда текущую и положить нужную вам, действия теже самые, что при инициализации первого окна.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники