如果状态为“1”,我想加载另一个FXML文件。但在下面的代码中,它不会从初始化加载另一个FXML。如果我使用一个按钮,那么这段代码可以正常工作,但我想在没有任何按钮的情有人可以给我一个建议来帮助我吗?
@Override
public void initialize(URL url, ResourceBundle rb) {
String status = "1";
if(status.equals("1")){
try {
Parent root = null;
root = FXMLLoader.load(getClass().getResource("/fxml/anotherFXML.fxml"));
Scene scene = new Scene(root);
MainClass.getStage().setScene(scene);
MainClass.getStage().show();
System.err.println("Success");
} catch (IOException ex) {
System.err.println("Failed");
}
}
}
答案 0 :(得分:1)
实际上,这不是在initialize
方法中加载新场景的好方法,它会导致异常。
顺便说一下,你可以延迟几秒钟,因为你试图一次拨打stage.show()
两次(一次在你的initialize
方法中,一次在你的Application
课程中)。
例如,您可以使用PauseTransition
。
@Override
public void initialize(URL location, ResourceBundle resources) {
PauseTransition delay = new PauseTransition(Duration.seconds(1));
delay.setOnFinished(event -> {
//load your view
});
delay.play();
}