2016-10-31 84 views
0

我必須在Java中製作一個二維數組JCheckBoxes。我使用下面的代碼,但是當我嘗試設置選擇正確的:如何製作JCheckBox的二維數組?

checks[0][1].setSelected(true); 

它說,checks[0][1]null

JCheckBox[][] checks = new JCheckBox[14][14]; 

for (int i = 0; i < 14; i++) { 
    for (int j = 0; j < 14; j++) 
     this.add(new JCheckBox("")); 
+0

那麼你在哪裏分配了'checks [0] [1]'? –

+0

即時通訊新的Java,但我認爲當我做數組它檢查檢查[0] [1] – Nobody

+0

不,它不。它將其設置爲「null」,除非直到您爲其指定了其他內容。 –

回答

1

您必須在數組中創建每個JCheckBox然後添加它。我也建議使用命名常量而不是幻數,如下所示:

final int NUM_BOXES = 14; // named constant 
JCheckBox[][] checks = new JCheckBox[NUM_BOXES][NUM_BOXES]; 

for (int i = 0; i < NUM_BOXES; i++) { 
    for (int j = 0; j < NUM_BOXES; j++) 
     checks[i][j] = new JCheckBox(""); 
     this.add(checks[i][j]); 
    } 
} 
+0

感謝您的答案兄弟,但idk爲什麼這條線給了我一個錯誤this.add(檢查[i] [j]); r在變量J – Nobody

+0

這似乎是你使用大寫'J'而不是小寫'j'。 –

+0

這或你的第二個for循環沒有開始和結束括號('{...}'),沒有那些for循環只執行直接在它下面的行。 –