2012-08-30 4 views
5

私は、例外が発生したときに次のコードを呼び出すアプリケーションを持っています。つまり、 "try/catch"の "catch"内にあります。代わりにintを入力するようにユーザーに指示する「ポップアップ」のようなウィンドウを作成するだけです。プライマリステージが閉じているときに、すべてのステージを終了するにはどうすればよいですか?

Stage dialogStage = new Stage(); 
dialogStage.initModality(Modality.WINDOW_MODAL); 
dialogStage.setScene(new Scene(VBoxBuilder.create(). 
children(new Text("Please enter an integer."), new Button("Ok.")). 
alignment(Pos.CENTER).padding(new Insets(5)).build())); 
dialogStage.show(); 

唯一の問題は、ステージは、主ステージが(それは公共のボイド開始(ステージprimaryStage)におけるパラメータである)閉じても残っていることです。

は、私はクラス変数として定義することによって、クラス全体でdialogstageが見えるように?:

何を試してみました。 dialogstageは、ユーザーがメインのアプリケーションを終了しようとすると、しかし、それは実際に私が意図したもの行いません閉じられていることに

primaryStage.setOnCloseRequest((new EventHandler<WindowEvent>(){ 

     @Override 
     public void handle(WindowEvent arg0) { 
          arg0.consume(); 
      try 
      { 
      dialogStage.close(); 

          } 
      catch(Exception ex) 
      { 
       System.out.print(ex.getMessage()+"\r\n"); 
      } 

     } 
    })); 
} 

この「作品」:それから私は、次のコードを実装しますが閉じようとするときプライマリステージのみダイアログボックスが閉じられます。

私はクラス全体が1つのtry/catchにしか置かれていないかもしれない愚かなダイアログボックスについて知りたくないので、これは審美的に不快な解決策です。

私は、プライマリステージが終了したときにダイアログボックスを閉じるように指示するシンプルなソリューションがあるかどうか、またtry/catchの外にたくさんのコードを書く必要がないかどうかを知りたいと思います。あなたのメインステージでイベントOnCloseRequestで

答えて

関連する問題