0

ユーザー入力用に複数の 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 を作成することは可能ですか?

4

1 に答える 1

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では...

于 2013-09-30T03:54:14.560 に答える