【问题标题】:JavaFX8 fxml naming of nested controllers嵌套控制器的 JavaFX8 fxml 命名
【发布时间】:2017-06-09 23:35:00
【问题描述】:

给定一个 .fxml 包括:

<fx:include fx:id="header" source="Header.fxml" />

Java FXML docs 说要创建两个变量,例如:

@FXML private HBox header;
@FXML private HeaderController headerController;

什么决定了控制器变量名?是否总是只是包含 ID 后跟“控制器”?

【问题讨论】:

  • 文档中没有明确说明,但我就是这么解释的(而且它似乎总是这样工作。)
  • 有什么更好的方法来识别哪个控制器与 fxml 文件相关联?
  • @SedrickJefferson 类似 header.getController() 和我可以控制的变量名?

标签: javafx javafx-8


【解决方案1】:

是的,注入控制器的字段名称始终通过将&lt;fx:include&gt; 标记的fx:id"Controller" 连接来构造。

它在the FXMLLoader.CONTROLLER_SUFFIX field 的文档中“隐藏”。

包含的 fxml 文件的控制器的后缀。完整的密钥存储在命名空间映射中。

(如果存在这样的字段,则命名空间映射包含按它们注入的字段名称的所有对象。)

你可以在这里验证它的值是"Controller"https://docs.oracle.com/javase/8/javafx/api/constant-values.html#javafx.fxml.FXMLLoader.CONTROLLER_SUFFIX

【讨论】:

  • 非常全面的答案!谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多