关于如何在按下按钮时打开新窗口有几个问题,但我想在启动应用程序时打开两个窗口。
我目前的方法是将以下代码放在一个新类中,该类用作新窗口的控制器:
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("secondWindow.fxml"));
fxmlLoader.setController(this);
try {
parent = (Parent) fxmlLoader.load();
scene = new Scene(parent, 500, 400);
stage = new Stage(scene);
stage.show();
} catch (IOException e) {
e.printStackTrace();
}
这适用于按钮或基于事件的窗口,我正在寻找同时启动两个窗口。因此,我想使用main方法从课程中启动我的第二个窗口。
在此课程中,您可以使用以下代码找到第一个正在启动的窗口:
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
在下面我想添加代码来启动第二个窗口。我试过了:
Parent secondRoot = FXMLLoader.load(getClass().getResource("secondWindow.fxml"));
Scene secondScene = new Scene(secondRoot);
Stage secondStage = new Stage();
secondStage.setScene(secondScene);
secondStage.show();
我的理解应该这样做,但它会出现以下错误:
java.lang.NoSuchMethodException: monopolybank.SecondWindowController.<init>()
at java.lang.Class.getConstructor0(Class.java:2971)
at java.lang.Class.newInstance(Class.java:403)
如何修复我的方法或有什么方法可以获得相同的结果?
答案 0 :(得分:2)
你的问题与windows的数量无关,而且与你添加到你创建的monopolybank.SecondWindowController类的参数的构造函数有关。=&gt;从该类中删除构造函数。