需要帮助使用StdDraw绘制2D数组

时间:2020-05-02 10:59:07

标签: java arrays eclipse multidimensional-array stddraw

因此,我已经有了一个读取文件的方法,该文件已转换为2d数组(因此,每次使用时,数组的尺寸可能会有所不同,具体取决于使用的文件)。现在,我试图使用此方法绘制一个矩形,它将无法正常工作。我的代码是:

public static void drawBoard(String [][] board)  {

    for (int i = 0; (i < board.length); i++) { //line 88
        for (int j = 0; (j < board[0].length); j++) {
            int r = board.length;
            int c = board[0].length;
            double R = new Double(r);
            double C = new Double(c);

        StdDraw.setXscale(0,C);
        StdDraw.setYscale(0,R);
        StdDraw.setCanvasSize(500,500);
        StdDraw.setPenRadius(0.05);
        StdDraw.setPenColor(StdDraw.BLUE);
        StdDraw.rectangle((C/2), (R/2), (C/2), (R/2));
        StdDraw.close();


    }
}
}

该如何解决?我怎样才能绘制一个矩形? 它说该错误在第88行,并且是“ java.lang.NullPointerException”错误。

1 个答案:

答案 0 :(得分:0)

StdDraw.rectangle需要类型为double的输入参数。您将其传递为int类型的输入参数。可以,但是您可能不想这样做。在计算C/2R/2时,您进行了integer division,因此可能会意外舍入。要解决此问题,您可以将CR初始化为double