良い一日!
JavaFX SDK を使用してプログラムを開発しています。C# のようなメッセージ ボックスが欲しかった:
DialogResult rs = MessageBox.showDialog("Message Here...");
if (rs == ....) {
// code
}
JavaFX SDK を使用して、このような機能を実現したいと考えています。回答は大歓迎です。
アップデート
Java8u40 の時点で、コア JavaFX ライブラリにはダイアログ (メッセージ ボックス) 機能が含まれています。次のクラスのドキュメントを参照してください。
クラスの使用方法に関する簡単な情報については、Alert
この質問に対する他の回答を参照してください。
より長いチュートリアルについては、Maker JavaFX ダイアログ チュートリアルを参照してください(このチュートリアルを強くお勧めします)。
元の回答
モーダル確認ダイアログの例を次に示します。ダイアログの内容を含むシーンを含むステージを作成し、シーンで show() を呼び出すことによって機能します。
JavaFX 2.2+ を使用していて、新しいステージが表示されている間にメイン処理スレッドを一時停止する場合は、show ではなくステージで showAndWait() を呼び出すことができます。show と wait を使用し、メッセージと [ok] ボタンのみを表示するように変更すると、処理は C# MessageBox と非常によく似た動作をするはずです。
Java 8 用のプロフェッショナルな外観のメッセージ ボックスが必要な場合は、blo0p3r の回答で言及されている JavaFX UI コントロール サンドボックスのダイアログの後の反復であるControlsFX ライブラリのダイアログを使用することをお勧めします。
OSSによるJavaFX 2.2のMessageBoxはこちら
役立つと思います。
MessageBox.show(primaryStage,
"Message Body",
"Message Title",
MessageBox.ICON_INFORMATION | MessageBox.OK | MessageBox.CANCEL);
別の簡単な代替手段を次に示します: https://sites.google.com/site/martinbaeumer/programming/open-source/fxmessagebox
JavaFX 2.2 で利用できる標準のメッセージ ボックスがまだないのは驚くべきことです
これは私が最終的に使用したもので、FX Experience で発表されたJavaFX UI Controls Sandboxの一部です。
これは素晴らしく使いやすいダイアログです。これしか使っていないので他との比較はできません。問題ありません。
コードは非常に簡潔です。次のようになります。
//calling from a different controller and don't have the scene object loaded.
Stage stage = (Stage)deleteButton.getScene().getWindow();
DialogResponse response = Dialogs.showConfirmDialog(stage, "Are you sure ...", "Confirm deletion","Delete?", DialogOptions.OK_CANCEL);
if(response == DialogResponse.OK) {
//...
}
現時点では、このライブラリを使用してダイアログを表示しています。多分それはあなたのために役立つかもしれません:
これは非常に簡単な例です: Alert alert = new Alert(AlertType.CONFIRMATION, "続行してもよろしいですか?");