0

だから私は、画面を a1 -> h8 から 8x8 グリッドに分割する Java プログラムを持っています。プログラムは 2 文字の入力を受け付けます。たとえば、a1 と入力すると、マウスは a1 の場所をクリックする必要があります。2つの質問があります

1)私は疑問に思っていましたが、実際にこれを行う必要がありますか:

if (input == a1) //a1 の場所をクリック

64回?それとももっと良い方法がありますか?

2) 実際にマウス クリックを行うには何を使用すればよいですか? 実際にマウスを動かさずに場所をクリックする方法はありますか?

4

3 に答える 3

0

クラスを使用awt.Robotしてクリックをシミュレートします。

于 2013-10-10T07:06:22.140 に答える
0

質問1にお答えください。

ArrayListからのすべての値を格納する which を使用できますa1 to h8

次に、チェックする単一の if 条件を記述できます。

ArrayList<String> list = new ArrayList<String>();
list.add("a1");
list.add("a2");
list.add("a3");
list.add("a4");
String input ="a1";     
if(list.contains(input))
    //click location of a1
else
    //else part

もう1つの方法は、次を使用することArrayです:

String[] arr = new String[]{"a1","a2","a3","a4"};
for(int i=0;i<arr.length;i++)
{
    if(arr[i]!=null && arr[i].equals(input))
        //click location of a1
}
于 2013-10-10T07:25:38.727 に答える
0

まず:

The program is to take a 2 letter input,

あなたのプログラムは、2文字ではなく文字と数字を取ります。誰かが解決策に対処しようとする方法に影響を与える可能性があるため、そのような表現方法に注意する必要がありますが、大したことではありません:)

第二に、これが最善の方法であるかどうかはわかりませんが、グリッドの四角形の名前 (a1、a2、a3 など) の ArrayList を作成する可能性があります。ユーザーから入力を受け取ると、入力が次のエントリと一致するまでリストを反復処理します。 ArrayList が見つかったら、ロボットを使用してクリックを作成するか、手動で onClickEvent をリスナーに送信します。ユーザー入力に一致するエントリがリストに見つからない場合は、無効な参照を示すエラーが返されます。

また、配列への各グリッド参照を一度に 1 つずつ手動で入力することを避けるために、以下のように char ASCII 値を使用し、ループしてリストを作成してみてください。

    char c = 97;
    char n = 49;
    String s = Character.toString(c) + Character.toString(n);
    System.out.println(s);

    myArrray.add(s);

上記を正しい方法で正常にループすることで、各グリッド参照を 1 つずつ追加する手間を省くことができます。

于 2013-10-10T07:26:27.627 に答える