I use several scenes and currently there are one method for each scene, like
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);
}
but I want to remember Scene and do it like that
void setScene1() {
FXMLLoader loader = scene1.getLoaderSomehow(); // < ---- ????
loader.<Controller1>getController().callMethod();
primaryStage.setScene(scene1);
}
This could be done using Scene.getUserData
and Scene.setUserData
:
...
Scene scene = new Scene(root);
scene.setUserData(loader);
FXMLLoader loader = (FXMLLoader) scene.getUserData();
But you should keep the following in mind:
Scene
, so why not "remember" the loader/controller too?If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With