鉴于我有一个表示创建数据记录的表格的FXML。如果我仅将此FXML用于CreateRecordController
,我可以直接在FXML中绑定控制器,并使用fx:id
将控件绑定到此控制器。
但是,如果我想在EditRecordController
重用此FXML,我该怎么办?我无法在FXML中绑定两个控制器。有没有办法在FXML加载器中进行这种绑定?
答案 0 :(得分:2)
您可以在加载fxml之前将控制器实例传递给FXMLLoader
。这需要在fxml文件中不存在fx:controller
属性:
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属性。