我有标签网格(大小 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),我尝试用 if 替换 while,但也没有用。堆栈是否太大或可能存在无限循环?我该如何解决?