我有一個標準的JavaFX應用程序:Main.java, MainController.java & main.fxml
。要添加自定義組件,我創建了CustomComponentController.java
和custom_component_controller.fxml
。JavaFx:如何從CustomComponentController類引用主控制器類實例?
問題是在CustomComponentController
方法中我需要引用其他方法和標準組件MenuController
。我加public static MainController mc;
到MainController
類體,這樣就可以從CustomComponentController
(MainController.mc.neededMethod()
)看到。然後,我嘗試通過MainController.initialize()
方法(mc = this;
)將所有內容都傳遞給它 - 調試此斷點時,我看到this
充滿了組件實例,但mc
之後仍保留爲空組件。
問題是如何引用MainController
的運行實例,以便在其他類中使用其組件和方法並將不同的自定義組件相互引用?如何從事件處理程序清除MainController
代碼,並將組件的幫助方法全部移至組件自己的類中?
我嘗試以下方法,但發現沒有辦法讓他們沒有錯誤的工作:
Accessing FXML controller class
How can I access a Controller class in JavaFx 2.0?
JavaFX 2.0 + FXML. Updating scene values from a different Task
JavaFX 2.2 -fx:include - how to access parent controller from child controller