从外部开始打开第二个 JavaFX window
Open a second JavaFX window from outside start
如何从 "start" 方法外部打开辅助 JavaFX window(阶段)?例如,
public class GUI_Test extends Application {
static Stage secondStage;
public static void main(String[] args) {
launch(args);
showSecondWin();
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(
new VBox(
new Label("window 1"))));
primaryStage.show();
secondStage = new Stage();
}
public static void showSecondWin() {
secondStage.setScene(new Scene(
new VBox(
new Label("window 2"))));
secondStage.show();
}
}
以上代码仅显示第一个 window ("primaryStage"),并且(仅)当我关闭它时出现 java.lang.reflect.InvocationTargetException
错误消息。
James_D说有办法从外面开第二个window。如何实现?
来自 Application
的文档:
The launch method does not return until the application has exited, either via a call to Platform.exit or all of the application windows have been closed.
这意味着您的 main
方法中的第二行仅在 JavaFX 线程退出后才会被调用,因此您无法再创建任何阶段。
您可以在 start
方法中创建并显示您的第二阶段。如果这不是一个有效的选项,请尝试解释您要实现的目标。
如何从 "start" 方法外部打开辅助 JavaFX window(阶段)?例如,
public class GUI_Test extends Application {
static Stage secondStage;
public static void main(String[] args) {
launch(args);
showSecondWin();
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(
new VBox(
new Label("window 1"))));
primaryStage.show();
secondStage = new Stage();
}
public static void showSecondWin() {
secondStage.setScene(new Scene(
new VBox(
new Label("window 2"))));
secondStage.show();
}
}
以上代码仅显示第一个 window ("primaryStage"),并且(仅)当我关闭它时出现 java.lang.reflect.InvocationTargetException
错误消息。
James_D说有办法从外面开第二个window。如何实现?
来自 Application
的文档:
The launch method does not return until the application has exited, either via a call to Platform.exit or all of the application windows have been closed.
这意味着您的 main
方法中的第二行仅在 JavaFX 线程退出后才会被调用,因此您无法再创建任何阶段。
您可以在 start
方法中创建并显示您的第二阶段。如果这不是一个有效的选项,请尝试解释您要实现的目标。