度々質問させて頂いております。
オセロプログラム中で、エラーが出るので質問させて頂きます。
(class Board)
public void actButton(){
for(int i=0; i<64; i++) { int x = i/8; int y = i%8; if(Piece.checkRev(x+1,y+1)) { pButton[x][y].addActionListener(this); } else { pButton[x][y].addActionListener(null); } }
(class Piece)
public static boolean checkRev(int sx, int sy){
int saveX = sx; int saveY = sy; int mx = -1; int my = -2; // for文で+1スタートするので-2から始める boolean result = true; for(int i=0; i<8; i++) { sx = saveX; sy = saveY; if(mx == 0 && my == -1) { my = my + 2; } else if(my != 1) { my++; } else { mx++; my = -1; } while(p[sx+mx][sy+my] != turn && p[sx+mx][sy+my] > 0) { sx = sx+mx; sy = sy+my; } if(p[sx+mx][sy+my] == turn){ result = true; }else{ result = false; } } return result;
}
このメソッドを書き加えたところ、ActButtonメソッドの
pButton[x][y].addActionListener(null);
の行でnullPointerExceptionのエラーが表示されます。
addActionListener(null)にするとボタンについているActionが無効になるという認識でしたが間違っているでしょうか?
念のため新しいメソッドを加える前の全文はこちら(https://teratail.com/questions/19068)に書かせて頂いております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/03 13:44