Я не знаю, как закрыть главное окно в javafxml - PullRequest
2 голосов
/ 22 марта 2020

Я не знаю, как закрыть главное окно в java f xml.

Эта часть кода находится в классе 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();
}

I ' У меня есть это. В контроллере я сделал это:

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

но я все еще не знаю, как я могу закрыть primaryStage.

Пожалуйста, помогите мне или скажите мне, как я могу создать новое окно и закройте старое окно. Я думаю, что это то, что я хочу сделать - это не правильно, но я сам придумал это.

1 Ответ

3 голосов
/ 22 марта 2020

Я делаю это с помощью объекта на сцене, которую вы хотите закрыть, чтобы получить окно

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

(замените 'OBJECTINSCENE' на идентификатор чего-либо в вашей сцене). Это дает вам ссылку на этап, который вы открыли. Затем вызовите

currentStage.hide();

Чтобы закрыть сцену, когда хотите.

Таким образом, ваша функция показа будет выглядеть следующим образом

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