2015-12-24 73 views
2

如何獲取對我的控制器類的引用?JavaFX - 如何獲取控制器對象的實例

這是我的代碼片段。

Parent root = FXMLLoader.load(getClass().getResource("my.fxml")); 
stage.setScene(new Scene(root, 500, 500)); 
MyController c = stage.getControllerInstance(); <-- HOW??? 
c.setATextValue("Hello world"); //Set initial value 
stage.show(); 

控制器類中FXML指定在FX:控制器屬性。該實例在後臺自動創建。我需要訪問該實例以便在表單中設置初始值。

我知道我可以在XML中設置初始值,但我需要在運行時設置它們。

+2

我認爲你應該使用FXMLLoader的方法getController() –

回答

8

請勿使用靜態FXMLLoader.load(...)方法。相反,請在該實例上創建一個FXMLLoader實例並調用load()。然後,你可以調用getController()

FXMLLoader loader = new FXMLLoader(getClass().getResource("my.fxml")); 
Parent root = loader.load(); 
MyController c = loader.getController(); 

stage.setScene(new Scene(root, 500, 500)); 
+0

謝謝!這正是我需要的。 – user3523268

+0

然後請接受它作爲答案:) @ user3523268 – geisterfurz007

相關問題