0
鑑於我有一個FXML表示創建數據記錄的表單。如果我僅將此FXML用於CreateRecordController
,我可以直接在FXML中綁定控制器,並使用fx:id
將控件綁定到此控制器。JavaFX 8:FXML的重用
但是,如果我想重複使用此FXML作爲EditRecordController
,我該怎麼辦?我無法在FXML中綁定兩個控制器。有沒有辦法在FXML加載器中執行此綁定?
鑑於我有一個FXML表示創建數據記錄的表單。如果我僅將此FXML用於CreateRecordController
,我可以直接在FXML中綁定控制器,並使用fx:id
將控件綁定到此控制器。JavaFX 8:FXML的重用
但是,如果我想重複使用此FXML作爲EditRecordController
,我該怎麼辦?我無法在FXML中綁定兩個控制器。有沒有辦法在FXML加載器中執行此綁定?
在加載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的財產。