2013-09-30 6 views
0

У меня есть JPanel с несколькими JComboBoxes для ввода пользователем. Каждый JComboBox создается со значениями перечисления. Есть несколько из этих JComboBoxes, поэтому я хочу иметь метод для создания и настройки каждого из них. Например:Populating Generic JComboBox с Enum

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

Смежные вопросы