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

问题描述 投票:0回答:1

所以我已经有了一个读取文件的方法,并将其转换为一个二维数组(因此数组的尺寸可能每次都不同,这取决于我使用的文件)。现在我想用这个方法画一个矩形,但它不工作。我的代码是

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 "错误。

java arrays eclipse multidimensional-array stddraw
1个回答
0
投票

StdDraw.rectangle 期待输入参数类型为 double. 你把类型为 int. 这是好的,但你可能不想这样做。当计算 C/2R/2 你做 整数除法 因此,你可能会意外地四舍五入。为了解决这个问题,你可以初始化 CR 作为 double.

© www.soinside.com 2019 - 2024. All rights reserved.