2016-04-27 15 views
0

何らかのイベントが発生するまでユーザーが解消できないような種類の「ブロックされた警告」が必要です。だから、私は警告を作成し、それからすべてのボタンを削除しました:JavaFXで警告を消す方法は?

Alert waitingAlert = new Alert(Alert.AlertType.INFORMATION); 
waitingAlert.setTitle("Proposta Inviata"); 
waitingAlert.getButtonTypes().setAll(); 

waitingAlert.setHeaderText("La proposta è stata inviata a " + trade.getPlayer2Name()); 
waitingAlert.showAndWait(); 

次に、私は特定のイベントが発生したときにそれを却下する必要があります。私はちょうどこのようにしてみました:

waitingAlert.close(); 

しかし、それは動作しません。

編集
パネルは、ユーザーが受け入れるか拒否される必要がネットワーク内の他のユーザにリクエストを送信したい時に示されています。原則は、リクエストを受け入れるか拒否するかを他のユーザーが言うまで、UIがブロックされることです。この要求は、リングネットワークを介して遠隔メソッド呼び出しを通じて送信されます。私はパネルを閉じて閉じるには、応答を受信したとき。

+0

'showAndWait()'はウィンドウが閉じられるまで実行をブロックするので、 'close()'の呼び出しがその後に来ると、基本的に到達できません。実際に何が起きているのかを少し明確にする必要があります。バックグラウンドプロセスをやっていて、完了したらアラートを閉じたいのですか?その場合は、スレッドの設定方法を示します。そうでなければ、何?おそらくあなたの質問を詳細で編集する... –

答えて

1

ユーザーが解読できないプロセスを待つダイアログを表示するには、James_Dの記述に従ってdialog.show()を使用する必要があります。

しかし、ボタンがなければ、ダイアログは実際には閉じず、強制する必要があります。

//for example 
dialog.getButtonTypes().add(ButtonType.CANCEL); 
dialog.hide(); 
dialog.getButtonTypes().remove(ButtonType.CANCEL); 

これにより、ボタンのないダイアログを閉じることができます。

関連する問題