单击按钮关闭模态窗口

时间:2014-05-31 15:22:11

标签: java javafx-2

我有一个带按钮的窗口。单击此按钮可打开模态窗口。 现在,我想通过单击按钮关闭第二个窗口,但我无法弄清楚如何。

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

2 个答案:

答案 0 :(得分:1)

我找到了帮助我找到解决方案的以下post by 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();

答案 1 :(得分:0)

您想要通过点击其他窗口来关闭模态窗口吗?如果可以看到模态窗口,您将如何返回到另一个窗口?

您可能想要使用一个窗口:单击按钮时,隐藏该窗口中的所有控件,并在模态窗口中显示您想要的信息,以及单击按钮。单击该按钮时,将窗口重置为其“&”。原始状态。

这只是在容器中显示/隐藏控件的练习。