如何在JAVA中绘制区域
我有以下代码:
public void DoDraw(Graphics g, Main_Data M_D, int x, int y){
if(x<0 || y<0 || x>50 || y>60){
return;
}
else
if(M_D.getPix()[x][y].p_c.isEmpty()){
g.setColor(Color.red);
g.drawLine(x, y, x, y);
}
DoDraw(g ,M_D, x+1, y);
DoDraw(g ,M_D, x, y+1);
DoDraw(g ,M_D, x-1, y);
DoDraw(g ,M_D, x, y-1);
return;
}
这就是我的问题:线程“AWT-EventQueue-0”java中的异常。StackOverflowerr语言
请问错误在哪里
# 1 楼答案
错误在于你有“无限”递归
DoDraw
调用自身的方式永远不会达到递归终止的基本情况。它将在相同的参数之间来回移动,直到Java耗尽堆栈空间并必须终止