Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX8:FXML的重用_Javafx_Javafx 8 - Fatal编程技术网

JavaFX8: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

假设我有一个FXML,它表示创建数据记录的表单。如果仅对
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属性