修繕!みんな、ありがとう!
さて、なぜこれが私に ArrayIndexOutOfBoundsException を与えているのかわかりません..
al は、次のような値を保持する配列リストです。
2,6,m
1,7,w
5,3,c
0,4,w
1,6,w
2,3,w
1,5,w
ここで、各配列リストのインデックスを取得しようとしているところです。行、列、文字に分割します。temp[2] が範囲外であると言っています。なんで?つまり、分割メソッドは 0、1、および 2 の 3 つの部分を作成する必要があります。いくつかのテストを実行したところ、temp[0] および temp[1] 呼び出しの範囲外も出ました。
for (int i = 0; i < al.size(); i++) {
String[] temp = al.get(i).toString().split(",");
System.out.println(temp.length);
System.out.println(temp[1]);
if (temp[2].equals("m")) {
boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].setIcon(mousetile);
boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].putClientProperty("mouse", true);
}
if (temp[2].equals("c")) {
boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].setIcon(cheesetile);
boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].putClientProperty("cheese", true);
}
if (temp[2].equals("w")) {
boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].setIcon(metalwall);
boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].putClientProperty("wall", true);
}
}
String[] を分割メソッドで間違って使用していますか? ありがとう - オースティン
編集:
arraylist で for ループを実行したところ、すべての値がそこにあります。
boardTiles[x][x] は、JButton の 2 次元配列です。
インデックス 1 で例外が発生しています。
表示されている .length も 1 です。