JavaFX 8:重用FXML

问题描述 投票:0回答:1

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

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

javafx javafx-8
1个回答
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属性。

© www.soinside.com 2019 - 2024. All rights reserved.