2013-09-26 8 views
0

我有這樣JComponent allComp[]; 現在我想這個陣列的每個元素中的JComponent參考保持不同類型的如下面組分,添加各種類型的部件的成一個JComponent參考陣列

allComp[0] = new JComboBox();

allComp[1] = new JButton();

allComp[2] = new JMonthChooser();

我想越來越空指針異常。這可能嗎??如果可能怎麼樣? 請幫我解決這個問題。 感謝推進

+0

你還記得初始化數組嗎?ie allComp = new JComponent [3]?我也推薦使用List來替代;) – MadProgrammer

+0

哦,是的......知道了......實際上編輯沒有給出添加的建議。這就是我忽視的原因。這似乎是一個愚蠢的問題。 –

+0

謝謝反正:) –

回答

0

您可能還沒有初始化allComp和它的null

JComponent allComp[] = new JComponent[MAX_COMPONENTS]; 

無論如何,這是建議使用List不是數組的,如果你不事先知道組件的數量做。

List<JComponent> allComp = new ArrayList<>(); 
allComp.add(new JComboBox()); 
allComp.add(new JButton()); 
allComp.add(new JMonthChooser()); 
0

您需要創建數組對象本身:

JComponent[] allComp = new JComponent[ARRAYSIZE]; 
0

我認爲你沒有初始化數組

int arraySize = 20; 
JComponent allComp[] = new JComponent[arraySize]; 

做像

JComponent allComp[] 

東西只有「聲明」的對象,這是有點像一個承諾「的地方在這段代碼中,我將使用這個對象,但是我還沒有決定我想要它是什麼,所以我把它放在了不確定的地方。「

「初始化」是您需要做的實際創建對象。通常你用

new 

關鍵字。