我正在构建具有不同接口的应用程序。我决定使用JavaFX,我想知道我是否可以在FXML文档中保存多个容器,并且在使用FXML Loader时,按id(即fx:id
)选择一个特定的容器。
我最近才知道,有几个人反对我并提出问题重复。我现在陈述我的辩护并证明这不重复。
我不回答我的问题是我想为父本身设置fx:id并使用fxmlloader根据id加载父。 OK?
答案 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()
方法加载每个文件。