public void loginFired(ActionEvent event) {
try{
Stage login = new Stage();
loadView(new Locale("en", "EN"));
URL location = getClass().getResource("login.fxml");
fxmlLoader.setLocation(location);
AnchorPane page = (AnchorPane) fxmlLoader.load(location.openStream());
Scene scene = new Scene(page);
hostLogin.setScene(scene);
hostLogin.initStyle(StageStyle.UTILITY);
hostLogin.setTitle("Login info");
hostLogin.setResizable(false);
hostLogin.initOwner(this.stage);
hostLogin.initModality(Modality.APPLICATION_MODAL);
hostLogin.show();
这里在代码后面使用 loadview 方法来加载属性文件。对于第一个页面,事件正确触发,当我关闭窗口并再次单击该按钮/loginFired 时,它会引发异常。发生异常:根值已指定。 请指导我同样的事情。我对 javafx 完全陌生。!
最佳答案
FXMLLoader 尚不能加载 FXML 文件两次。你要么必须
- 新建一个FXMLLoader实例,设置位置并加载
- 使用静态加载方法
- 通过调用
setRoot(null)
重置当前的FXMLLoader实例(不推荐)
关于javafx - 发生异常 :Root value already specified in Javafx when loading fxml page for the second time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21424843/