我不知道如何关闭 java fxml 中的主要 window

I don't know how to close the main window in javafxml

我不知道如何关闭 java fxml 中的主要 window。

这部分代码在class Main:

public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
    Parent root2 = FXMLLoader.load(getClass().getResource("2ndwin.fxml"));
    Scene scene  = new Scene(root);
    primaryStage.setTitle("Hello World");
    primaryStage.setScene(scene);
    primaryStage.show();

    Scene scene2 = new Scene(root2);
    secondaryStage.setScene(scene2);
}

public void show(){
    secondaryStage.show();
}

我知道了。在控制器中我这样做了:

Main m = new Main();
m.show();`

但我仍然不知道如何关闭 primaryStage

请帮助我或告诉我如何创建新的 window 并关闭旧的 window。我认为这是我想做的 - 这是不正确的,但我自己想出了它。

我通过在你想要关闭的阶段使用一个对象来获得 window

    Window currentStage = OBJECTINSCENE.getScene().getWindow();

(将 'OBJECTINSCENE' 替换为场景中任何内容的 ID)。这为您提供了您打开的阶段的参考。然后调用

currentStage.hide();

关闭舞台。

所以你的显示函数如下

public void show(){
    Window currentStage = OBJECTINSCENE.getScene().getWindow();
    secondaryStage.show();
    currentStage.hide();
}