我目前有以下情况:
我创建了一个由 FXML 控制器备份的 FXML 文件。屏幕由侧边栏和儿童支架组成。当我点击侧边栏中的一个元素时,我会在子文件夹中加载一个额外的 FXML 文件,如下所示:
childHolder.getChildren().addAll(FXMLLoader.load(getClass().getResource("SidebarItem1.fxml")));
这工作正常。但是我想在父控制器的控制器中访问加载的 FXML 的一些元素。我只是在加载后初始化了子 FXML 的元素。
我已经看过这个问题:JAVAFX - FXML - Access Loaded FXML Controls from Parent Controller,但是当我这样做时,我仍然得到一个错误:
FXMLLoader loader = new FXMLLoader(getClass().getResource("SidebarItem1.fxml"));
loader.setController(this);
childHolder.getChildren().addAll(loader.load());
someChildTextField.setText("Some text");
我已经给出someChildTextField
了一个fx:id
并将它放在初始化的顶部,如下所示:
@FXML public TextField someChildTextField;
不过,我得到一个 NullpointerException,所以我认为它仍然找不到控件。
有谁知道如何访问父控制器中加载的 FXML 的元素?