JavaFX8:FXML的重用
假设我有一个FXML,它表示创建数据记录的表单。如果仅对JavaFX8:FXML的重用,javafx,javafx-8,Javafx,Javafx 8,假设我有一个FXML,它表示创建数据记录的表单。如果仅对CreateRecordController使用此FXML,我可以直接在FXML中绑定控制器,并使用fx:ids将控件绑定到此控制器 但是,如果我想将这个FXML也用于EditRecordController,我该怎么办呢?我无法绑定FXML中的两个控制器。是否有方法在FXML加载程序中执行此绑定???在加载FXML之前,可以将控制器实例传递到FXMLLoader。这要求fxml文件中不包含fx:controller属性: Object c
CreateRecordController
使用此FXML,我可以直接在FXML中绑定控制器,并使用fx:id
s将控件绑定到此控制器
但是,如果我想将这个FXML也用于
EditRecordController
,我该怎么办呢?我无法绑定FXML中的两个控制器。是否有方法在FXML加载程序中执行此绑定???在加载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属性 在加载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属性