Java 网格绘制问题/错误

Java 网格绘制问题/错误,java,netbeans,grid,draw,indexoutofboundsexception,Java,Netbeans,Grid,Draw,Indexoutofboundsexception,线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:5 位于Grid.main(Grid.java:25) 尝试编译时出现上述错误: class Grid { // Grid drawing method static void drawGrid(int n) { StdDraw.setXscale(0, 2*n); StdDraw.setYscale(0, 2*n); // StdDraw.jar s

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:5 位于Grid.main(Grid.java:25)

尝试编译时出现上述错误:

class Grid {
// Grid drawing method
    static void drawGrid(int n) {
        StdDraw.setXscale(0, 2*n);
        StdDraw.setYscale(0, 2*n);
// StdDraw.jar setter for scale method called
        for (int v = 1; v <= n; v++) {
            // variable colours lower left square red.
            for (int k = 1; k <= n; k++) {
                if ((v+k) % 2 == 0)
                    StdDraw.setPenColor(StdDraw.RED);
                else
                    StdDraw.setPenColor(StdDraw.BLACK);
                StdDraw.filledSquare(2*v-1, 2*k-1, 1);
            }
        }
    }

    public static void main(String[] args) {
        drawGrid(Integer.parseInt(args[5])); 
        // calls the drawGrid method to draw the grid with defined values
    }
}
类网格{
//网格绘制法
静态空心绘图网格(int n){
StdDraw.setXscale(0,2*n);
标准设定标度(0,2*n);
//调用的scale方法的StdDraw.jar setter

对于(int v=1;v而言,错误似乎发生在main方法中。
args[5]
是程序的第六个命令行参数。根据您的代码,我假设它应该是
drawGrid(Integer.parseInt(args[0]);
。这将访问第一个命令行参数


至于它在Netbeans中是否有效,唯一的办法就是尝试它!

是的,这是给出错误的值,但是,它对该值不加区分。无论该值是什么,它似乎都不会影响错误。您是否传递了命令行参数?(使用类似于
JavaGrid3
的东西运行程序将使用命令行参数)drawGrid(Integer.parseInt(args[5]);这不是命令行参数吗???
drawGrid(Integer.parseInt(args[5]));
是程序中的一行。命令行参数是启动程序时传递的附加参数。例如:
java Grid
有0个命令行参数,而
java Grid 3
有1个命令行参数。请尝试将
drawGrid(Integer.parseInt(args[5])
替换为
drawGrid(3)
然后看看会发生什么。