2009-09-22 72 views
27

我想用Enum中的值填充java.swing JComboBox從Enum填充Swing JComboBox

例如

public enum Mood { HAPPY, SAD, AWESOME; } 

並將這三個值填入只讀JComboBox

謝謝!

回答

37

嘗試:

new JComboBox(Mood.values()); 
1

通過@Pierre提出的解決方案是好的。通常你使用DefaultComboBoxModel或者ComboBoxModel或者綁定到ComboBoxModel來獲得更復雜的東西。

默認情況下,JComboBox不可編輯。

16

如果你不想(或不能)改變初始化與默認的構造函數,那麼你可以使用setModel()方法:

JComboBox<Mood> comboBox = new JComboBox<>(); 
comboBox.setModel(new DefaultComboBoxModel<>(Mood.values())); 
+1

注[*類型推斷通用實例創建*](HTTP: //docs.oracle.com/javase/7/docs/technotes/guides/language/type-in​​ference-generic-instance-creation.html)和[generic model](http://docs.oracle.com/javase/ 7/docs/api/javax/swing/DefaultComboBoxModel.html),Java 7中的新增功能。 – trashgod 2012-02-18 16:15:16