从外部开始打开第二个JavaFX窗口

时间:2016-06-12 10:29:02

标签: java user-interface javafx javafx-8 stage

如何从“start”方法外部打开辅助JavaFX窗口(阶段)?例如,

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();
}
}

上面的代码只显示第一个窗口(“primaryStage”),并且(仅)当我关闭它时会出现java.lang.reflect.InvocationTargetException错误消息。

James_D说有办法从外面开始打开第二个窗口。如何实现这一目标?

1 个答案:

答案 0 :(得分:3)

来自Application的文档:

  

在应用程序退出之前,通过调用Platform.exit或所有应用程序窗口都已关闭,启动方法不会返回。

这意味着只有在JavaFX线程退出后才会调用main方法中的第二行,因此您无法再创建任何阶段。

您可以在start方法中创建并显示第二阶段。如果这不是有效选项,请尝试解释您要实现的目标。