无法在控制器中的javafx中创建按钮数组

时间:2014-05-17 04:22:19

标签: java javafx javafx-2

我正在创建一个4x4按钮的网格。我试图这样做是在控制器中。这是我在初始化方法中的代码。

    Button[][] gridButtons = new Button[4][4];
    for(int i=0; i<4; i++) {
        for (int j = 0; j<4; j++) {
            mainGrid.add(gridButtons[i][j], i, j);
            gridButtons[i][j].setText("1");
            gridButtons[i][j].minWidth(34.0);
            gridButtons[i][j].setMnemonicParsing(false);
            gridButtons[i][j].prefHeight(38.0);
            gridButtons[i][j].prefWidth(41.0);
            gridButtons[i][j].setTextAlignment(TextAlignment.CENTER);
        }
    }

上面的代码在mainGrid.add(gridButtons[i][j], i, j);处抛出NullPointerException。但是,当我尝试执行以下操作时,它可以正常工作。

    Button gridButtons = new Button();
    gridButtons.setText("1");
    gridButtons.minWidth(34.0);
    gridButtons.setMnemonicParsing(false);
    gridButtons.prefHeight(38.0);
    gridButtons.prefWidth(41.0);
    gridButtons.setTextAlignment(TextAlignment.CENTER);
    mainGrid.add(gridButtons, 1, 1);

我不知道究竟是什么导致了这个问题。

1 个答案:

答案 0 :(得分:4)

创建Button[][]时,您正在创建按钮的数组。不是里面的按钮数组。换句话说,在创建数组后,数组元素仍为null

只需添加gridButtons[i][j] = new Button();作为循环中的第一件事来初始化Button,你应该做得很好。