2014-06-08 47 views
-1

我想將一些現有的JRadioButtons添加到此類型的數組中以供將來使用。我有這個:將現有對象添加到java中的數組中

public static javax.swing.JRadioButton jRadioButton1; 
public static javax.swing.JRadioButton jRadioButton2; 
public static javax.swing.JRadioButton jRadioButton3; 
public static javax.swing.JRadioButton jRadioButton4; 
public static javax.swing.JRadioButton jRadioButton5; 
public static javax.swing.JRadioButton jRadioButton6; 
public static javax.swing.JRadioButton jRadioButton7; 
public static javax.swing.JRadioButton jRadioButton8; 

這些是我的按鈕。然後,我聲明這一點:

public static JRadioButton[] seq = new JRadioButton[8]; 

然後我嘗試從數組指定每個按鈕像這樣:

seq[0] = jRadioButton1; 

但是當我試圖訪問它像這樣:

seq[0].setSelected(true); 

我得到一個空指針異常。我是Java的新手,這是我做這件事的第一個邏輯。有什麼建議麼?

+0

默認情況下,除非您自己明確初始化它們,否則對象將初始化爲「null」。在嘗試使用它們之前,你有沒有實際初始化過'JRadioButton'對象? – JonK

+0

在任何時候,你是否說'jRadioButton1 = new JRadioButton()'? – christopher

回答

2

你的靜態變量JRadioButton直到他們分配了新JRadioButton對象空引用:

jRadioButton1 = new JRadioButton(); 
seq[0] = jRadioButton1; 
seq[0].setSelected(true); // Won't throw 
+0

那麼,現在我沒有得到任何錯誤,但seq [0] .setSelected(true)不起作用。 – user3719358

+0

單選按鈕是否顯示在窗體上? –

+0

是的。有任何想法嗎 ? – user3719358

0

,而不是你正在嘗試做的,完全格式化代碼:

int buttonsNeeded = 8; 
JRadioButton[] seq = new JRadioButton[8]; 
for(int i=0; i<buttonsNeeded; i++) { 
    seq[i] = new JRadioButton(); 
} 

seq[0].setSelected(true); 

這將創建您所需的數組初始化每個項目而不需要所有這些聲明。如果你知道我的意思,它也適用於5-10-1000個按鈕。

相關問題