0
我想知道是否有可能在創建控制器後重新使用其他fxml。換句話說,我可以爲fxml創建一個控制器,稍微修改它,然後將其用於另一個fxml而不影響第一個fxml(另一個實例)。否則,我會強迫從控制器複製代碼,應用更改並使用新的代碼。FXML中可重複使用的控制器。一個控制器(略有改變)用於多個fxml文件
我想知道是否有可能在創建控制器後重新使用其他fxml。換句話說,我可以爲fxml創建一個控制器,稍微修改它,然後將其用於另一個fxml而不影響第一個fxml(另一個實例)。否則,我會強迫從控制器複製代碼,應用更改並使用新的代碼。FXML中可重複使用的控制器。一個控制器(略有改變)用於多個fxml文件
我沒有看到很多用例,因爲在不同的FXML文件中顯然會有不同的控件,所以目前還不清楚如何管理注入。如果您確實有用例(例如,不同的FXML文件對於相同的基本用戶界面只有不同的佈局),那麼可以:
從FXML文件中刪除fx:controller
屬性,並使用以下模式手動設置控制器:
FXMLLoader loader = new FXMLLoader(getClass().getResource("/path/to/file.fxml"));
MyConfigurableController controller = new MyConfigurableController(aParam, anotherParam);
loader.setController(controller);
Parent root = loader.load();
謝謝你的回覆。我有以下情況。我有兩個動態變化的屏幕。在屏幕A中,我有一個媒體欄和一個控制器。在屏幕B中,我想創建一個新的媒體欄(例如相同但有幾個按鈕),並使用相同的控制器,但具有附加功能。當然,我可以將控制器複製到第二個媒體欄的新控制器中,並將其用於我的目的,但我一直在尋找更優雅的解決方案,例如向新創建的媒體欄添加第二個控制器,以處理新的內容。這是否有可能? – TheNephalem
@ TheNephalem對於這種情況,你爲什麼不使用繼承? –
我太累了,我再也想不起來了。非常感謝你爲我節省了很多時間! – TheNephalem