所以我已经有了一个方法来读取我已经转换成二维数组的文件(因此,根据我使用的文件的不同,该数组的维数可能每次都不同)。现在我正试着用这个画一个矩形,但它不起作用。我的代码是:
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“错误。
发布于 2020-05-02 19:32:31
StdDraw.rectangle需要double类型的输入参数。将int类型的输入参数传递给它。这是可以的,但您可能不想这样做。在计算C/2和R/2时,您使用的是integer division,因此您可能会意外地向下舍入。要解决此问题,可以将C和R初始化为double。
https://stackoverflow.com/questions/61558262
复制相似问题