JavaFX 8:重用FXML

时间:2017-12-27 17:22:21

标签: javafx javafx-8

鉴于我有一个表示创建数据记录的表格的FXML。如果我仅将此FXML用于CreateRecordController,我可以直接在FXML中绑定控制器,并使用fx:id将控件绑定到此控制器。

但是,如果我想在EditRecordController重用此FXML,我该怎么办?我无法在FXML中绑定两个控制器。有没有办法在FXML加载器中进行这种绑定?

1 个答案:

答案 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属性。