簡體   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