从外部开始打开第二个 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 方法中创建并显示您的第二阶段。如果这不是一个有效的选项,请尝试解释您要实现的目标。