Jak zamknąć okno dialogowe JAVA FX

0

Witam, w programie ma kod który jest odpowiedzialny za otworzenie okna modalnego i jest wywoływany z kontrolera ControllController (kod poniżej):

 
Stage stage = new Stage();
        Parent root = null;
        root = FXMLLoader.load(
                controller.Controller.class.getResource("../view/sample.fxml"));
        stage.setScene(new Scene(root));
        stage.setTitle("My modal window");
        stage.initModality(Modality.WINDOW_MODAL);
        stage.initOwner(MenuBar.getScene().getWindow());
        stage.show();

W nowo otwarty oknie mam przycisk zamknij i jest on obsługiwany przez inny kontroler. Proszę o informację jak zamknąć nowo otwarte okno za pomocą przycisku na oknie modalnym.

Z tego co znalazłem w internecie to muszę użyć:

stage.close(); 

ale jak się skomunikować między kontrolerami aby obiekt stage był dostępny w drugim kontrolerze.

Z góry dziękuje za odpowiedź.

0

Dokształć się w wstrzykiwaniu kontrolek i powinieneś bez problemu ogarnąć.

0

Jeżeli w tym twoim kontrolerze masz referencję do przycisku "Zamknij" to najprościej będzie tak:

Stage dialogStage = (Stage) Zamknij.getScene().getWindow();
dialogStage.close();

W tym twoim pliku sample.fxml (zakładam, że tam jest zdefiniowany widok) możesz na przykład dodać sobie fxid do przycisku i użyć adnotacji @FXML żeby wstrzyknąć referencję do przycisku do kontrolera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1