如何在JAVA中绘制区域

时间:2014-05-02 16:28:50

标签: java paint

我有这段代码:

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.lang.StackOverflowError

哪里有错误?

1 个答案:

答案 0 :(得分:0)

错误在于你有&#34;无限&#34;递归。 DoDraw以一种永远不会到达递归终止的基本情况的方式调用自身。它将继续在相同的参数之间来回切换,直到Java耗尽堆栈空间并且必须终止。