Класс Stage (Окно)
Stage – это окно верхнего уровня в JavaFX-приложении (аналог окна настольного приложения). Первичное окно (primary stage) передается в метод start() при запуске приложения.
Свойства Stage: можно задавать заголовок (title), размеры, отключать/включать возможность изменения размера окна и др.
Дополнительные окна: приложение может создавать дополнительные экземпляры Stage для отображения нескольких окон одновременно (диалоги, вспомогательные окна и пр.). Не забудьте вызвать stage.show(), чтобы отобразить окно.
Пояснение
В JavaFX класс javafx.stage.Stage представляет окно приложения. Когда вы запускаете JavaFX-приложение, платформа автоматически создает Primary Stage – главное окно – и передает его в метод start(Stage primaryStage). Этот объект primaryStage – аналог главного окна, где вы размещаете ваш интерфейс. Вы можете установить заголовок окна через primaryStage.setTitle("Мое приложение");, задать минимальные/максимальные размеры, и наконец отобразить его вызовом primaryStage.show().
Stage можно воспринимать как контейнер для содержимого. По умолчанию Stage пуст, и чтобы в окне что-то появилось, нужно поместить внутрь него сцену (Scene). Если нужно открыть новое окно, достаточно создать новый объект Stage: например, Stage dialog = new Stage(); – и настроить его (можно указать модальность для диалога, тип окна и т.д.), затем задать ему сцену и вызвать show(). Каждое окно Stage функционирует независимо – у него свой цикл жизни (показано, закрыто и т.п.). При закрытии главного окна обычно завершается все приложение, однако дополнительные Stage можно открывать и закрывать без остановки приложения.
Stage предоставляет методы для контроля отображения: show() – показать окно, hide() или close() – скрыть/закрыть. Также можно реагировать на события закрытия окна (например, для подтверждения выхода) через обработчики на Stage (метод setOnCloseRequest).
В современных JavaFX-приложениях часто используют класс Application и FXML (о них далее) для управления окнами: например, можно в start() загрузить FXML и установить сцену на primaryStage. Однако, зная про Stage, вы всегда можете гибко создавать новые окна когда это необходимо (например, всплывающие настройки, справка и т.п.).
