【问题标题】:How can I load a specific container from an FXML document?如何从 FXML 文档加载特定容器?
【发布时间】:2017-04-05 18:47:39
【问题描述】:

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

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

这个问题没有回答我的是我想为父级本身设置 fx:id 并使用 fxmlloader 根据 id 加载父级。好吗?

【问题讨论】:

  • 容器是什么意思?你是说控制器吗?
  • @fireandfuel 例如,锚窗格。或网格窗格。像那些。
  • @yeedle 是的,看起来非常相似。但是我认为他/她/他们想问如何使用 id 加载父母本身。
  • @RahulSrinath 是的你懂我!这就是我想要的。顺便说一句,我是一个“他”

标签: java javafx javafx-8 fxml fxmlloader


【解决方案1】:

您可以使用 FXML 加载器的 getNamespace 方法来做到这一点。

(来自 SO answer 的代码,但请参阅 cmets):

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

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

【讨论】:

  • 我同意那个 Rahul 的家伙,我正在寻找使用 fx:id 加载父级
猜你喜欢
  • 2015-12-06
  • 2021-05-16
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
相关资源
最近更新 更多