嵌套控制器的 JavaFX8 fxml 命名

sim*_*ser 3 javafx javafx-8

给定一个 .fxml 包括:

<fx:include fx:id="header" source="Header.fxml" />
Run Code Online (Sandbox Code Playgroud)

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

@FXML private HBox header;
@FXML private HeaderController headerController;
Run Code Online (Sandbox Code Playgroud)

什么决定了控制器变量名称?它总是只是包含 id 后跟“控制器”吗?

fab*_*ian 5

是的,控制器注入的字段名称始终是通过fx:id<fx:include>标记的 与连接来构造的"Controller"

它“隐藏”在FXMLLoader.CONTROLLER_SUFFIX领域的文档中。

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

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

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