JavaFX:何时/哪里有元素/控件实例化?

时间:2017-03-06 11:48:11

标签: java javafx

好的,我有我的第一个JFX App Up&运行

现在,我在问自己,一切都很好地包裹在幕后。 如何通过适当的实例化将所有这些FXML转化为java代码?它是如何工作的?

谷歌如果我知道要写什么,但到目前为止,我发现了很多关于如何使用它的信息,但关于如何使用它并不多。

1 个答案:

答案 0 :(得分:2)

魔法发生在FXMLLoader内。

它接收FXML文件,并使用XML解析器解析它。您被迫使用一组明确定义的XML节点,并且加载器知道如何在运行时将每种类型的这些XML节点“转换”为相应的Java对象(到JavaFX Node)。如果XML文件的格式不正确(不适合定义的结构),您将收到异常。通过这种方式创建节点,剩下一件事:填充控制器。

要填充控制器,它将使用反射创建指定控制器类的实例并设置其数据成员。它遍历内部的@FXML个带注释的字段,然后将每个字段设置为一个具有匹配fx:id属性的已创建对象。

默认情况下,在控制器实例上调用public initialize方法。