org.jdesktop.swingx.combobox
Class EnumComboBoxModel<E extends Enum<E>>
java.lang.Object
javax.swing.AbstractListModel
org.jdesktop.swingx.combobox.EnumComboBoxModel<E>
- All Implemented Interfaces:
- Serializable, ComboBoxModel, ListModel
public class EnumComboBoxModel<E extends Enum<E>>
- extends AbstractListModel
- implements ComboBoxModel
A ComboBoxModel implementation that safely wraps an Enum. It allows the
developer to directly use an enum as their model for a combobox without any
extra work, though the display can can be further customized.
Simple Usage
The simplest usage is to wrap an enum
inside the
EnumComboBoxModel
and then set it as the model on the
combo box. The combo box will then appear on screen with each value
in the enum
as a value in the combobox.
ex:
enum MyEnum { GoodStuff, BadStuff };
...
JComboBox combo = new JComboBox();
combo.setModel(new EnumComboBoxModel(MyEnum.class));
Type safe access
By using generics and co-variant types you can make accessing elements from the model
be completely typesafe. ex:
EnumComboBoxModel enumModel = new EnumComboBoxModel(MyEnum1.class);
MyEnum first = enumModel.getElement(0);
MyEnum selected = enumModel.getSelectedItem();
Advanced Usage
Since the exact toString()
value of each enum constant
may not be exactly what you want on screen (the values
won't have spaces, for example) you can override to
toString() method on the values when you declare your
enum. Thus the display value is localized to the enum
and not in your GUI code. ex:
private enum MyEnum {GoodStuff, BadStuff;
public String toString() {
switch(this) {
case GoodStuff: return "Some Good Stuff";
case BadStuff: return "Some Bad Stuff";
}
return "ERROR";
}
};
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
EnumComboBoxModel
public EnumComboBoxModel(Class<E> en)
getSize
public int getSize()
- Specified by:
getSize
in interface ListModel
getElementAt
public E getElementAt(int index)
- Specified by:
getElementAt
in interface ListModel
setSelectedItem
public void setSelectedItem(Object anItem)
- Specified by:
setSelectedItem
in interface ComboBoxModel
getSelectedItem
public E getSelectedItem()
- Specified by:
getSelectedItem
in interface ComboBoxModel