JAVA:我正在努力制作基于2D阵列和摆动图形的Connect4游戏

时间:2018-03-16 08:55:43

标签: java swing multidimensional-array graphics indexoutofboundsexception

后端程序与扫描仪输入配合使用,只打印矩阵,但我有图形问题。当我在其中制作带椭圆形的矩形时,效果很好,但是当我将二维数组引入故事中时,我将其中的部分填充其他颜色,抛出“线程中的异常”AWT-EventQueue-0“java.lang。 ArrayIndexOutOfBoundsException:6“。我尝试将它放在不同的地方并以其他顺序调用它,但它总是抛出此异常

编辑:这只是一个原型代码,需要做更多的工作,但我需要继续处理这个错误。

完整堆栈跟踪:

TabBar

1 个答案:

答案 0 :(得分:1)

在索引棋盘[]

时,您正在混合行和列
     for(int i = 0; i < COL; i++){
        for(int j = 0; j < ROWS; j++){

           g.setColor(Color.BLUE);
           g.fillRect( (i*SQUARE_SIZE),(j * SQUARE_SIZE+SQUARE_SIZE),SQUARE_SIZE,SQUARE_SIZE);     

           if(board[i][j] == 0){
              g.setColor(Color.BLACK);
              g.fillOval( (i*SQUARE_SIZE),(j*SQUARE_SIZE +SQUARE_SIZE),CIRCLE_WIDTH_HEIGHT,CIRCLE_WIDTH_HEIGHT);                  

           }else if(board[i][j] == 1){

              g.setColor(Color.RED);
              g.fillRect( (i*SQUARE_SIZE),(j * SQUARE_SIZE+SQUARE_SIZE),SQUARE_SIZE,SQUARE_SIZE);                     

           }else if(board[i][j] == 2){ 

              g.setColor(Color.YELLOW);
              g.fillOval( (i*SQUARE_SIZE),(j*SQUARE_SIZE +SQUARE_SIZE),CIRCLE_WIDTH_HEIGHT,CIRCLE_WIDTH_HEIGHT);

           }
        }
     }  

它应该是board [j] [i],或者只是在循环语句中交换他们的角色