gpt4 book ai didi

java - 从 FXML 初始化加载另一个 FXML

转载 作者:行者123 更新时间:2023-12-01 10:10:26 30 4
gpt4 key购买 nike

如果状态为“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");
}
}
}

最佳答案

实际上,这不是在 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();

}

关于java - 从 FXML 初始化加载另一个 FXML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36149461/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com