JavaFX - 在应用程序启动时打开多个 windows
JavaFX - opening multiple windows on application startup
关于如何在按下按钮时打开一个新的 window 有几个问题,但我想在应用程序启动时打开两个 windows。
我目前的做法是将以下代码放在一个新的class中,作为新window的控制器:
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();
}
这非常适合 windows、 的按钮或基于事件的打开,我正在寻找同时启动两个 windows。因此,我想 使用 main 方法从 class 启动我的第二个 window。
在此 class 中,您可以找到使用此代码启动的第一个 window:
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
我想在下面添加代码以启动第二个 window。我试过了:
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)
我该如何修正我的方法或者有什么替代方法可以得到相同的结果?
你的问题与 windows 的数量无关,而与你添加到你创建的 monopolybank.SecondWindowController class 的带有参数的构造函数有关 => 删除class.
的构造函数
关于如何在按下按钮时打开一个新的 window 有几个问题,但我想在应用程序启动时打开两个 windows。
我目前的做法是将以下代码放在一个新的class中,作为新window的控制器:
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();
}
这非常适合 windows、 的按钮或基于事件的打开,我正在寻找同时启动两个 windows。因此,我想 使用 main 方法从 class 启动我的第二个 window。
在此 class 中,您可以找到使用此代码启动的第一个 window:
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
我想在下面添加代码以启动第二个 window。我试过了:
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)
我该如何修正我的方法或者有什么替代方法可以得到相同的结果?
你的问题与 windows 的数量无关,而与你添加到你创建的 monopolybank.SecondWindowController class 的带有参数的构造函数有关 => 删除class.
的构造函数