繁体   English   中英

JavaFX:何时/在何处实例化元素/控件?

[英]JavaFX : When/Where are elements/controls instantiated?

好吧,我有我的第一个JFX App Up&Running。

现在,我要问自己,如何将所有事情完美地包裹在幕后。 如何通过适当的实例化和全部将这一系列FXML转换为Java代码? 它是如何工作的 ?

我曾向Google询问,如果我知道该写些什么,但到目前为止,我对如何使用它有很多了解,但对如何制造却了解不多。

魔术发生在FXMLLoader内部。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM