2017-12-27 301 views
0

鑑於我有一個FXML表示創建數據記錄的表單。如果我僅將此FXML用於CreateRecordController,我可以直接在FXML中綁定控制器,並使用fx:id將控件綁定到此控制器。JavaFX 8:FXML的重用

但是,如果我想重複使用此FXML作爲EditRecordController,我該怎麼辦?我無法在FXML中綁定兩個控制器。有沒有辦法在FXML加載器中執行此綁定?

回答

2

在加載fxml之前,您可以將控制器實例傳遞給FXMLLoader。這就要求fx:controller屬性是從FXML文件缺失:

Object controller = ... // create an instance of the desired controller class here 

FXMLLoader loader = new FXMLLoader(getClass().getResource("/some/path/myfxml.fxml")); 
loader.setController(controller); 

Node root = loader.load(); 

注:綁定是錯誤的術語在這裏,因爲你不分配控制器任何JavaFX的財產。