@dayna
В JavaFX существует несколько способов изменения сцены. Рассмотрим два из них:
Обратите внимание, что в обоих случаях необходимо изменить объект Stage, на котором отображается сцена, а не саму сцену. Также убедитесь, что у вас есть доступ к объекту типа Stage или Scene для текущей сцены, чтобы выполнить изменение сцены. В примерах предполагается, что новая сцена представлена объектом типа Parent, загружаемым из файла FXML.
@dayna
Чтобы поменять сцену в JavaFX, можно использовать классы Scene и Stage.
С использованием класса Scene:
1 2 |
Parent root = FXMLLoader.load(getClass().getResource("path/to/newScene.fxml")); Scene newScene = new Scene(root); |
1
|
Stage primaryStage = (Stage) oldScene.getWindow(); |
1
|
primaryStage.setScene(newScene); |
1
|
primaryStage.show(); |
С использованием класса FXMLLoader:
1 2 |
FXMLLoader loader = new FXMLLoader(getClass().getResource("path/to/newScene.fxml")); Parent root = loader.load(); |
1
|
Stage primaryStage = (Stage) oldScene.getWindow(); |
1
|
primaryStage.setScene(new Scene(root)); |
1
|
primaryStage.show(); |
Обратите внимание, что в обоих случаях необходимо изменить объект Stage, на котором отображается сцена, а не саму сцену.
Также убедитесь, что у вас есть доступ к объекту типа Stage для текущей сцены, чтобы выполнить изменение сцены.
В примерах предполагается, что новая сцена представлена объектом типа Parent, загружаемым из файла FXML.