簡體   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