繁体   English   中英

通过单击按钮关闭模式窗口

[英]Closing a modal window by clicking button

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

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

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

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

这只是成为显示/隐藏容器中控件的一种练习。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM