【问题标题】:Closing a modal window by clicking button通过单击按钮关闭模式窗口
【发布时间】:2014-07-21 05:16:58
【问题描述】:

我有一个带按钮的窗口。单击此按钮将打开一个模式窗口。 现在,我想通过单击一个按钮来关闭第二个窗口,但我不知道怎么做。

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

【问题讨论】:

    标签: java javafx-2


    【解决方案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();
    

    【讨论】:

      【解决方案2】:

      您想通过单击其他窗口来关闭模式窗口吗?如果一个模态窗口可见,你将如何回到另一个窗口?

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

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

      【讨论】:

      • 不,我想用那个(模态)窗口上的按钮关闭模态窗口
      猜你喜欢
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 2022-07-25
      • 2012-09-23
      • 1970-01-01
      相关资源
      最近更新 更多