有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在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) 个答案

  1. # 1 楼答案

    错误在于你有“无限”递归DoDraw调用自身的方式永远不会达到递归终止的基本情况。它将在相同的参数之间来回移动,直到Java耗尽堆栈空间并必须终止