У меня есть окно с кнопкой. При нажатии этой кнопки открывается модальное окно. Теперь я хочу закрыть это второе окно, нажав кнопку, но я не могу понять, как это сделать.
public class StartMenu extends Application {
@Override
public void start(Stage primaryStage) {
final Button b = new Button("Go");
b.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
AnotherWindow aw = new AnotherWindow ();
aw.start(stage);
}
});
((Group) scene.getRoot()).getChildren().add(b);
primaryStage.setScene(scene);
primaryStage.show();
}}
public class AnotherWindow extends Application {
@Override
public void start(Stage primaryStage) {
final Button b = new Button("Back");
b.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
//Code to close window
}
});
((Group) scene.getRoot()).getChildren().add(b);
primaryStage.setScene(scene);
primaryStage.show();
}}
Я нашел следующий пост от Krzysztof Sz. что помогло мне найти решение.
public class AnotherWindow extends Application {
@Override
public void start(Stage primaryStage) {
final Button b = new Button("Back");
b.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
((Button)t.getTarget()).getScene().getWindow().hide();
}
});
((Group) scene.getRoot()).getChildren().add(b);
primaryStage.setScene(scene);
primaryStage.show();
}}
Это следующий фрагмент кода, который позволяет закрыть текущее (модальное) окно при нажатии кнопки:
((Button)t.getTarget()).getScene().getWindow().hide();
Вы хотите закрыть модальное окно одним щелчком мыши в другом окне? Если видится модальное окно, как вы вернетесь в другое окно?
Вы можете использовать одно окно: при нажатии кнопки скрыть все элементы управления в этом окне и сделать видимыми информацию, которую вы хотели иметь в своем модальном окне, а также кнопку для клика. Когда эта кнопка нажата, установите окно в исходное состояние.
Это просто упражнение по отображению/скрытию элементов управления в контейнере.