Java:JButton和ArrayList:从ArrayList添加到JPanel

时间:2012-02-23 19:43:25

标签: java swing arraylist jpanel jbutton

所以我在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);
    }
}

3 个答案:

答案 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--;