javafx - 发生异常 :Root value already specified in Javafx when loading fxml page for the second time

标签 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 完全陌生。!

最佳答案

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/

相关文章:

java - 无法解析符号导入com.sun.javafx.scene.control.skin.TextFieldSkinAndroid;

java - 将字符串转换为 ObservableValue<String>

java - 修复从 Object 到 ComboBox<String> javafx 的未检查强制转换

java - JavaFX 3D 中的可见光源

java - fxml - 隐藏控件仍然在工具栏中保留一席之地

javafx - 在javaFX中围绕对象旋转透视相机

Javafx 8 tableview添加行和焦点

gwt - 将 Java 数组传递到 JavaScript(通过 JSNI)并返回到 Java 结果为空值

JavaFX 启动屏幕按钮 onClick 后出现错误

java - 如何将 fxml 加载器的位置设置为另一个包中的 fxml