所以我在Container.add上得到一个NullPointerException,所以我显然错过了一些我看不到的东西。 ArrayList是Cell,它扩展了JButton。方法init()在扩展的JPanel类中。这是我的第一个问题,所以如果我做错了,请严格处理问题格式,谢谢。
public void init() {
int k = cells.length / 2;
for (int i = 0; i < (cells.length / 2); i++) {
int ID = rand.nextInt(25);
cells[i] = new Cell(this, ID);
cells[i + k] = new Cell(this, ID);
k--;
cellList.add(cells[i]);
cellList.add(cells[i + k]);
}
Collections.shuffle(cellList);
for (Cell cell : cellList) {
add(cell);
}
}
答案 0 :(得分:3)
简单而简单的k--
cellList.add(cells[i+k])
即使我看不到你对阵列做了什么。
答案 1 :(得分:1)
如果cells.length
是奇数(不可分为2,如3,5,7,15),该怎么办
考虑cells.length=5
,然后k=2
和[4]将保持为空。
答案 2 :(得分:0)
在将cell [i + k]添加到cellList之前,您已弃用k。结果,单元[i + k]尚未初始化。尝试将其更改为:
cellList.add(cells[i]);
cellList.add(cells[i + k]);
k--;