static JPanel fieldPanel = new JPanel();
static char cell[][][] = new char[2][12][12];
static JButton jCell[][][] = new JButton[2][12][12];
public void initField(){
for (int y=1; y<11; y++){
for (int field=0; field<2; field++ ){
for (int x=1; x<11; x++){
cell[field][x][y] = '.';
jCell[field][x][y].setBounds((x * 20) + (field * 200), y * 20, 15, 15);
fieldPanel.add(jCell[field][x][y]);
}
}
}
}
最长字符串中的“main”java.lang.NullPointerException中的异常/
答案 0 :(得分:1)
你需要像下面那样创建JButton然后你可以设置界限。
jCell[field][x][y] = new JButton();
jCell[field][x][y].setBounds((x * 20) + (field * 200), y * 20, 15, 15);
答案 1 :(得分:0)
jCell[field][x][y]
之前, null
是jCell[field][x][y].setBounds()
,因此是NullPointerException。
答案 2 :(得分:0)
static JButton jCell[][][] = new JButton[2][12][12];
只需创建JButton
s的3D引用数组,但是:
JButton
null
然后当您致电jCell[field][x][y].whatYouWant
时,您尝试取消引用null
。
使用按钮初始化jCell
数组:
for (i=0; ...
for (j=0; ...
for (k=0; ...
jCell[i][j][k] = new JButton(...);
答案 3 :(得分:0)
Type[] var = new Type[2];
只会在内存中分配空间来容纳2个Type对象,并将每个条目初始化为null
。这意味着:
var[0] == null
之后评估为true
。
因此
var[0].method();
抛出NullPointerException
。
您需要先初始化数组的每个条目,然后才能对它们进行处理:
jCell[field][x][y] = new JButton(...);
jCell[field][x][y].setBounds(...);
或:
JButton button = new JButton(...);
button.setBounds(...);
jCell[field][x][y] = button;