gpt4 book ai didi

JavaFX : When/Where are elements/controls instantiated?

转载 作者:行者123 更新时间:2023-11-30 02:37:47 25 4
gpt4 key购买 nike

好吧,我的第一个 JFX 应用程序已启动并正在运行。

现在,我问自己,一切是如何在幕后完美地包裹起来的。所有这些 FXML 是如何通过正确的实例化转换为 java 代码的?它是如何工作的?

如果我知道要写什么,我会在 Google 上搜索,但到目前为止,我找到了很多关于如何使用它的信息,但很少了解它是如何制作的。

最佳答案

奇迹发生在 FXMLLoader 内部。

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

为了填充 Controller ,它将使用反射来创建指定 Controller 类的实例并设置其数据成员。它循环访问内部的 @FXML 带注释的字段,然后将每个字段设置为具有匹配 fx:id 属性的已创建对象之一。

最后,默认情况下,在 Controller 实例上调用公共(public) initialize 方法。

关于JavaFX : When/Where are elements/controls instantiated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42624885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com