0
JOptionPane.showMessageDialog(null, roll, "Dice Game", JOptionPane.INFORMATION_MESSAGE, die);

これを実行すると、ブール値を変更できるようにユーザーが x を押したかどうかを知りたいです。roll は JTextArea、die は画像アイコン、null は私のレイアウトです。

問題は、showMessageDialog が void メソッドであることです。だからチェックできない。ありがとう。

私は JFrame を持っていないし、欲しいとも思わない。

4

3 に答える 3

3

ShowMessageDialogこのために設計されていません。ユーザーからのフィードバックを得るためではなく、メッセージを表示するために使用されます。X ボタンをクリックすることは、OK_CANCEL_OPTION[キャンセル] ボタンを使用するようなものです。

[キャンセル] ボタンが本当に必要ない場合は、実際に JOptionPane.showOptionDialog を使用できる独自の JDialog を作成する必要があります。

int result = JOptionPane.showOptionDialog(null, roll, "Dice Game", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, die, new Object[] { "OK"}, null);

resultユーザーが [OK] を押すと 0 になり、[X] ボタンでダイアログを閉じると -1 になります。

于 2013-03-06T18:26:09.557 に答える
0

なぜあなたはそれが必要なのですか?メッセージ ダイアログは情報ダイアログであり、どのボタン (OK または X) が押されたかを検出する必要はありません。

于 2013-03-06T18:26:24.760 に答える
0

メッセージ ダイアログは、ユーザーにメッセージを表示するためのものであるため、"OK" を使用して閉じるか、"X" を使用して閉じるかの間に意味的な違いはありません。

入力を探している場合は、おそらく確認ダイアログが必要で、int.

于 2013-03-06T18:25:47.373 に答える