JavaFX + Scene Builder 如何切换场景
JavaFX + Scene Builder how switch scene
我正在使用 JavaFx 和 Scenebuilder,并希望在 eclipse 中为自己创建一个名为 "Taskplanner" 的本地应用程序。
我创建了一个新舞台并设置了一个场景(参见 Main.java)。但不确定如何在 old 阶段设置新场景(参见 Controller.java)。也没有发现是否可以通过 Scene Builder
上的 "Stage primaryStage" 的 signInButtonClicked() 方法
有人可以帮忙吗?
Controller.java:
@FXML
Button btnSignIn;
@FXML
public void signInButtonClicked() throws Exception
{
//Here I want call the new Scene(SignInGUI.fxml) in my old Stage
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("../view/SignInGUI.fxml"));
}
Main.java:
@Override
public void start(Stage primaryStage) throws Exception
{
Parent root = FXMLLoader.load(getClass().getResource("../view/LoginGUI.fxml"));
primaryStage.setTitle("Taskplanner");
primaryStage.setScene(new Scene(root,500,500));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
您可以从按钮参考中获得对 Scene
和 Window
的参考。从那里开始,由您决定如何显示新视图。
以下是您获取这些参考资料的方式:
Scene scene = btnSignIn.getScene();
Window window = scene.getWindow();
Stage stage = (Stage) window;
您可以通过更改场景的根来更改视图:
FXMLLoader loader = ... // create and load() view
btnSignIn.getScene().setRoot(loader.getRoot());
或者您可以更改整个场景:
FXMLLoader loader = ... // create and load() view
Stage stage = (Stage) btnSignIn.getScene().getWindow();
Scene scene = new Scene(loader.getRoot());
stage.setScene(scene);
我正在使用 JavaFx 和 Scenebuilder,并希望在 eclipse 中为自己创建一个名为 "Taskplanner" 的本地应用程序。
我创建了一个新舞台并设置了一个场景(参见 Main.java)。但不确定如何在 old 阶段设置新场景(参见 Controller.java)。也没有发现是否可以通过 Scene Builder
上的 "Stage primaryStage" 的 signInButtonClicked() 方法有人可以帮忙吗?
Controller.java:
@FXML
Button btnSignIn;
@FXML
public void signInButtonClicked() throws Exception
{
//Here I want call the new Scene(SignInGUI.fxml) in my old Stage
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("../view/SignInGUI.fxml"));
}
Main.java:
@Override
public void start(Stage primaryStage) throws Exception
{
Parent root = FXMLLoader.load(getClass().getResource("../view/LoginGUI.fxml"));
primaryStage.setTitle("Taskplanner");
primaryStage.setScene(new Scene(root,500,500));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
您可以从按钮参考中获得对 Scene
和 Window
的参考。从那里开始,由您决定如何显示新视图。
以下是您获取这些参考资料的方式:
Scene scene = btnSignIn.getScene();
Window window = scene.getWindow();
Stage stage = (Stage) window;
您可以通过更改场景的根来更改视图:
FXMLLoader loader = ... // create and load() view
btnSignIn.getScene().setRoot(loader.getRoot());
或者您可以更改整个场景:
FXMLLoader loader = ... // create and load() view
Stage stage = (Stage) btnSignIn.getScene().getWindow();
Scene scene = new Scene(loader.getRoot());
stage.setScene(scene);