第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

加載 FXML 文件時,是否也加載了關(guān)聯(lián)的控制器

加載 FXML 文件時,是否也加載了關(guān)聯(lián)的控制器

至尊寶的傳說 2023-06-08 19:18:16
我已經(jīng)為 ScreenController 類(一個由每個屏幕的單獨控制器類擴展的類)創(chuàng)建了一個解決方案,它將處理我的應(yīng)用程序中的基線屏幕層次結(jié)構(gòu)。在我的課程中,我使用一個函數(shù)將另一個 FXML 文件的內(nèi)容添加(加載)到當(dāng)前控制器的當(dāng)前 AnchorPane 中。我的問題是:1)加載新的 FXML 時,F(xiàn)XML 使用的類(或者更確切地說,特定控制器)是否也被實例化/加載?2) 執(zhí)行此操作時,如果實例化/加載了新的 FXML 類,是否從內(nèi)存中釋放了先前的 FXML 類?還是它仍在使用內(nèi)存。屏幕轉(zhuǎn)換代碼:public void setScreen(String screen) throws Exception{    Parent root = FXMLLoader.load(getClass().getResource(screen));    window.getChildren().setAll(root);}
查看完整描述

2 回答

?
翻過高山走不出你

TA貢獻1875條經(jīng)驗 獲得超3個贊

了解這FXMLLoader不是框架,盡管它可以用作框架的基礎(chǔ)。沒有容器來管理控制器類的實例或加載的根。由 所創(chuàng)建的對象會發(fā)生什么FXMLLoader由應(yīng)用程序代碼決定。

FXML 文件只是描述對象圖的 XML 格式的文本文件。簡單FXMLLoader地解釋該文件并創(chuàng)建所述對象圖1。當(dāng)然,F(xiàn)XML 格式有一些專門添加的語法來處理 JavaFX 的特定功能(例如添加事件處理程序、綁定等)。


1)加載新的 FXML 時,F(xiàn)XML 使用的類(或者更確切地說,特定控制器)是否也被實例化/加載?

如果您fx:controller在 FXML 文件的根元素中有一個屬性,那么是的,將創(chuàng)建指定控制器類的新實例(默認(rèn)情況下)。FXML 文件描述的所有對象也是如此。換句話說,每次加載 FXML 文件時,都會FXMLLoader返回根和控制器的新實例。控制器實例的創(chuàng)建方式可以通過controllerFactoryFXMLLoader.

如果您沒有fx:controller屬性,那么要么沒有控制器實例,要么您需要以編程方式指定一個。在這種情況下,您手動提供控制器實例。

注意:永遠(yuǎn)不要在不同的 FXML 文件之間共享控制器類,也不要在不同的負(fù)載之間共享控制器實例。這樣做會引起各種混亂,并且不必要地復(fù)雜。也就是說,擁有一個公共抽象類可能是合適的,只要它只有每個子類共有的狀態(tài)和行為。


2) 執(zhí)行此操作時,如果實例化/加載了新的 FXML 類,是否從內(nèi)存中釋放了先前的 FXML 類?還是它仍在使用內(nèi)存。

如本答案開頭所述,FXMLLoader簡單地解釋 FXML 文件并創(chuàng)建適當(dāng)?shù)膶ο髨D1。一旦它這樣做了,創(chuàng)建的對象會發(fā)生什么就取決于你了。只要對象可以被任何線程強訪問,它們就不會被垃圾回收。

如果你問如果你重用一個實例會發(fā)生什么FXMLLoader,我不完全確定,因為我從來沒有嘗試過。FXMLLoader可以這么說,我建議您每次要加載 FXML 文件(或使用靜態(tài)load(URL)方法)時都創(chuàng)建一個新實例。


1. 創(chuàng)建對象圖后,如果存在控制器,則還將FXMLLoader注入任何適當(dāng)?shù)淖侄尾ⅰ版溄印彼羞m當(dāng)?shù)姆椒ā?/sup>


查看完整回答
反對 回復(fù) 2023-06-08
?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

這取決于您如何使用 FXMLLoader。有靜態(tài)和非靜態(tài)加載方法,還有可以提供控制器實例的方法。最好查看 FXMLLoader 類文檔中的各種加載方法。



查看完整回答
反對 回復(fù) 2023-06-08
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號