我正在通过将一些参数传递给此窗口的特定内部方法来调用加载窗口的方法,但我有这个例外:
GRAVE: null
javafx.fxml.LoadException: Controller value already specified.
unknown path:12
这是我的方法
public void openDef(String sys, String comp, String code) throws Exception {
Stage defStage = new Stage();
FXMLLoader loader = new FXMLLoader();
DefTableController cont = new DefTableController();//calling class controller
loader.setController(cont);
Parent frame = loader.load(getClass().getResource("defTable.fxml").openStream());
cont.getSysChoice(sys, comp, code);//call the method by passing parameters
Scene sceneDef = new Scene(frame);
defStage.setTitle("Défaillance du " + comp);
defStage.setScene(sceneDef);
defStage.show();
}
我不明白为什么它认为控制器已经设置好了?以及如何解决这个问题? 谢谢
答案 0 :(得分:9)
从FXML文件中删除fx:controller属性。该属性是FXMLLoader创建新控制器的指令:因为你已经通过调用setController来设置它,所以它是矛盾的。
JavaFX Error: Controller value already specified
这家伙回答了它^道具给他!