我正在创建一个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);
我不知道究竟是什么导致了这个问题。
答案 0 :(得分:4)
创建Button[][]
时,您正在创建按钮的数组。不是里面的按钮数组。换句话说,在创建数组后,数组元素仍为null
。
只需添加gridButtons[i][j] = new Button();
作为循环中的第一件事来初始化Button
,你应该做得很好。