我正在尝试打开一个新的表单窗口。但我想在构造函数中分配一些值。
我尝试过的代码:
fxmlLoader.setRoot(null);
fx:root (DbForm.fxml)
错误:
Controller 值已指定。 文件:/C:/Users/Admin/Documents/NetBeansProjects/SeleniumWebTest/dist/run685287776/SeleniumWebTest.jar!/seleniumwebtest/DbForm.fxml:14
try {
DbFormController dbYapCont = new DbFormController("s", "s", "s", "s");
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("DbForm.fxml"));
fxmlLoader.setController(dbYapCont);
Pane root = (Pane) fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
} catch (Exception e) {
System.out.println(e.getMessage());
}
最佳答案
从 FXML 文件中删除 fx:controller
属性。该属性是指示 FXMLLoader 创建新 Controller 的指令:因为您已经通过调用 setController 设置了一个 Controller ,所以这是矛盾的。
关于JavaFX 错误 : Controller value already specified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49798301/