2014-05-17 36 views
0

我正在創建4x4按鈕的網格。我試圖做到這一點是在控制器中。這是我在初始化方法中的代碼。無法在控制器中創建javafx中的按鈕陣列

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); 

我不知道究竟是什麼導致了這個問題。

回答

4

當您創建Button[][]時,您正在創建按鈕的陣列。不在陣列內的按鈕。換句話說,創建數組後,數組元素仍然是null

只需添加gridButtons[i][j] = new Button();作爲初始化Button循環中的第一件事,你應該很好。