ラベルのグリッド (サイズ n*n) があり、その不規則な部分を色で塗りつぶしたいと考えています。メソッドを書きました
private void fill(int j){
while(board[j].getName().equals("s")){
board[j].setBackground(Color.yellow);
try{
fill(j-1);
} catch (ArrayIndexOutOfBoundsException e){}
try{
fill(j+1);
} catch (ArrayIndexOutOfBoundsException e){}
try{
fill(j+n);
} catch (ArrayIndexOutOfBoundsException e){}
try{
fill(j-n);
} catch (ArrayIndexOutOfBoundsException e){}
}
}
そして、私はまだStackOverflowErrorを取得しています。私は大きな部品を使用していません (私の n は最大 20 です)。while を if に置き換えようとしましたが、うまくいきませんでした。スタックには大きすぎますか、それとも無限ループになる可能性がありますか? どうすれば修正できますか?