2013-09-30 107 views
0

我有一個包含多個JComboBoxes的JPanel供用戶輸入。每個JComboBox都使用enum的值進行實例化。有幾個JComboBoxes,所以我想有一個方法來實例化和設置每個。例如:用Enum填充通用JComboBox

private JComboBox card_type_box = this.createCombo(CardType.values()); 

... 

private JComboBox createCombo(CardType[] card_types) 
{ 
    final JComboBox combo = new JComboBox(card_types); 
    combo.setSelectedIndex(0); 
    combo.addActionListener(this); 
    ... 
    return combo; 
} 

此方法的問題是它只接受CardType類型的枚舉。有沒有可能讓這個方法接受一個任意的枚舉來創建一個新的JComboBox?

回答

1

嘗試使用類似(Java 7中下)...

private <E extends Enum> JComboBox<E> createCombo(E[] values) { 
    final JComboBox<E> combo = new JComboBox(values); 

private <E extends Enum> JComboBox createCombo(E[] values) { 
    final JComboBox combo = new JComboBox(values); 

在Java 6中,例如...

+0

你不能用一般的參數參數的JComboBox ,但在其他方面可行。謝謝。 –

+0

@TroySquillaci是的,你可以,但你需要使用Java 7;) – MadProgrammer

+0

@TroySquillaci謝謝你的想法。一定要記住這在未來;) – MadProgrammer