0

基本的に、ダイアログ ボックスを表示し、ユーザーが 2 人から 4 人のプレーヤーを選択できるようにするコードがあります。正常に動作しますが、「OK」ボタンと「キャンセル」ボタンの機能を制御できるようにしたいのですが、それらにアクセスする方法がわかりません。「OK」ボタンをクリックするとメソッドが呼び出され、キャンセルをクリックするとプログラムが終了します (System.exit(0))。また、ユーザーがダイアログ ボックスの上隅にある「x」をクリックしたかどうかを確認するにはどうすればよいですか?

public void numPlayersDialog()
{
    Object[] possibilities = {"Two Players", "Three Players", "Four Players"};
    String s = (String)JOptionPane.showInputDialog(
                    null,
                    "Enter the number of Players\n",
                    "Initial Dialog",
                    JOptionPane.PLAIN_MESSAGE,
                    null,
                    possibilities,
                    "Two Players");


        if(s.equals("Two Players"))
        {
            setNumOfPlayers(2);
        }
        else if (s.equals("Three Players"))
        {
            setNumOfPlayers(3);
        }
        else
        {
            setNumOfPlayers(4);
        }
}

私はJavaのGUIにかなり慣れていないので、助けていただければ幸いです。ありがとう

4

2 に答える 2

0

あなたはそのようにすることができます:

if (s == null) {/////////////mean you click on the Cancel button
        System.exit(0);
    } else {////////////mean you click on OK button

        if (s.equals("Two Players")) {
            setNumOfPlayers(2);
        } else if (s.equals("Three Players")) {
            setNumOfPlayers(3);
        } else {
            setNumOfPlayers(4);
        }
    }
于 2013-03-23T15:45:42.600 に答える
0

javadocの内容は次のとおりです。

戻り値:

ユーザーの入力、またはユーザーが入力をキャンセルしたことを意味する null

したがって、戻り値が null の場合は、ユーザーが [キャンセル] をクリックしたか、ダイアログ ボックスを閉じたことを意味します。結果が null でない場合は、ユーザーが [OK] をクリックしたことを意味します。

于 2013-03-23T15:34:48.267 に答える