使用Enum填充Generic JComboBox

时间:2013-09-30 03:43:31

标签: java swing enums jcombobox

我有一个带有多个JComboBox的JPanel供用户输入。每个JComboBox都使用枚举值进行实例化。有几个这样的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 个答案:

答案 0 :(得分: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下,例如......