发生异常:第二次加载fxml页时,已在Javafx中指定了根值

时间:2014-01-29 07:36:42

标签: javafx javafx-2 fxml

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事情全新了。!

1 个答案:

答案 0 :(得分:3)

FXMLLoader尚未打算两次加载FXML文件。你要么

  • 创建一个新的FXMLLoader实例,设置位置并加载它
  • 使用静态加载方法
  • 通过调用setRoot(null)(不推荐)
  • 重置当前的FXMLLoader实例