我使用了几个场景,目前每个场景都有一种方法,比如
void setScene1() {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/main2.fxml"));
Parent root = FXMLLoader.load();
Scene scene = new Scene(root);
loader.<Controller1>getController().callMethod();
primaryStage.setScene(scene);
}
Run Code Online (Sandbox Code Playgroud)
但是我想要记住Scene并且那样做
void setScene1() {
FXMLLoader loader = scene1.getLoaderSomehow(); // < ---- ????
loader.<Controller1>getController().callMethod();
primaryStage.setScene(scene1);
}
Run Code Online (Sandbox Code Playgroud)
这可以使用Scene.getUserData
和Scene.setUserData
完成:
...
Scene scene = new Scene(root);
scene.setUserData(loader);
Run Code Online (Sandbox Code Playgroud)
FXMLLoader loader = (FXMLLoader) scene.getUserData();
Run Code Online (Sandbox Code Playgroud)
但是你应该记住以下几点:
Scene
,为什么不"记住"装载机/控制器呢? 归档时间: |
|
查看次数: |
7594 次 |
最近记录: |