我有一个名为changeScene()的方法,希望能够从单独的控制器类中调用。例如,当在初始场景上按下“设置”按钮时,初始场景的fxml文件的控制器类需要调用 Main .changeScene(“ settings.fxml”)。
Main类的当前代码(无错误):
public class Main extends Application {
private Stage window;
private Scene home,editor;
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
window = stage;
Parent root = FXMLLoader.load(getclass().getResource("/Scenes/MainPage.fxml"));
home = new Scene(root,640,400);
window.setTitle("Home");
window.setScene(home);
window.show();
}
//Method I want to be able to call externally
public void changeScene(String fxml) throws Exception{
Parent pane = FXMLLoader.load(
getclass().getResource(fxml));
Scene scene = new Scene(pane);
window.getScene().setRoot(pane);
}
}
我最初的想法是简单地向Main类添加一个构造函数,以使其可初始化并以这种方式调用该方法,但是我怀疑这是最好的解决方案。感谢您的事先帮助,JavaFX非常了解我。