如何从FXML文档加载特定容器?

时间:2016-11-22 07:25:23

标签: java javafx javafx-8 fxml fxmlloader

我正在构建具有不同接口的应用程序。我决定使用JavaFX,我想知道我是否可以在FXML文档中保存多个容器,并且在使用FXML Loader时,按id(即fx:id)选择一个特定的容器。

我最近才知道,有几个人反对我并提出问题重复。我现在陈述我的辩护并证明这不重复。

我不回答我的问题是我想为父本身设置fx:id并使用fxmlloader根据id加载父。 OK?

1 个答案:

答案 0 :(得分:2)

您可以使用FXML加载程序的getNamespace方法执行此操作。

(来自此SO answer的代码,但请参阅评论):

FXMLLoader loader = new FXMLLoader(getClass().getResource("FXMLDocument.fxml"));
Parent root = loader.load();
TextField foo = (TextField)loader.getNamespace().get("exampleFxId");

更好的方法是为您的所有需求提供单独的fxml文件,然后根据需要使用FXMLLoader.load()方法加载每个文件。