0

我正在用 Java 制作一个二维数组:

     import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class board {


    public static void main(String[] args) {
        JFrame window = new JFrame ("Chess");
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setVisible(true);
        window.setSize(600, 600);

        JButton tiles[][] = new JButton[8][8];
        tiles[0][0].setVisible(true);






    }

}

但是当我运行程序时,我得到了这个错误:

board.main(board.java:9) 处的线程“主”java.lang.NullPointerException 中的异常

出了什么问题?

4

4 回答 4

4

初始化数组

 static String boardL[][] = new String[5][5];

如果你不初始化一个数组,那么它指的是null 你会得到NullPointerException如果你试图访问索引而不创建数组对象。

于 2013-06-27T13:01:18.150 回答
1

你必须对数组做的三件事你不能忘记它:

  1. 声明int a[] 这是声明数组的方法。
  2. 初始化a= new int[size]这是初始化数组的方法。
  3. 分配a [I] = 2并分配给某事。

第一个和第二个非常重要,除非您必须预料到两种错误:

  • NullPointerException
  • IndexOutOfBoundsException

如果您没有将它分配给任何文字或引用变量,则第三个是默认的。

或者:您可以将三个步骤合二为一:

int [] a = {1,4,65,39};

于 2013-06-27T13:13:57.940 回答
1

你还没有初始化boardL[][]数组。初始化如下,

static String boardL [][]=new String[10][10];

然后使用它。

于 2013-06-27T13:02:39.297 回答
0

使用维度初始化数组(在本例中为 1):

boardL = new String[1][1];

如果您希望数组的尺寸为 x x y:

boardL = new String[x][y];
于 2013-06-27T13:06:22.377 回答