Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jdesktop.swingx.combobox
Class EnumComboBoxModel<E extends java.lang.Enum<E>>

    java.lang.Object
      javax.swing.AbstractListModel
          org.jdesktop.swingx.combobox.ListComboBoxModel<E>
              org.jdesktop.swingx.combobox.EnumComboBoxModel<E>

All Implemented Interfaces:
  java.awt.event.ActionListener, java.io.Serializable, java.util.EventListener, javax.swing.ComboBoxModel, javax.swing.ListModel

    public class EnumComboBoxModel<E extends java.lang.Enum<E>>

extends ListComboBoxModel<E>

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<MyEnum> enumModel = new EnumComboBoxModel<MyEnum1>(
             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";
            }
        };

Note: if more than one enum constant returns the same `String` via `toString()`, this model will throw an exception on creation.

Author:
  joshy, Karl Schaefer
See Also:
  Serialized Form

Field Summary

Fields inherited from class org.jdesktop.swingx.combobox.ListComboBoxModel
`data, selected, UPDATE`

Fields inherited from class javax.swing.AbstractListModel
`listenerList`

Constructor Summary
`EnumComboBoxModel(java.lang.Class<E> en)` Creates an `EnumComboBoxModel` for the enum represent by the `Class` `en`.

Method Summary
`void` | `setSelectedItem(java.lang.Object anItem)` Set the selected item.

Methods inherited from class org.jdesktop.swingx.combobox.ListComboBoxModel
`actionPerformed, getElementAt, getSelectedItem, getSize`

Methods inherited from class javax.swing.AbstractListModel
`addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.swing.ListModel
`addListDataListener, removeListDataListener`

Constructor Detail

### EnumComboBoxModel

    public EnumComboBoxModel(java.lang.Class<E> en)

  Creates an `EnumComboBoxModel` for the enum represent by the `Class` `en`.

  Parameters:
    `en` - the enum class type
  Throws:
    `java.lang.IllegalArgumentException` - if the `Enum.toString` returns the same value for more than one constant

Method Detail

### setSelectedItem

    public void setSelectedItem(java.lang.Object anItem)

  Set the selected item. The implementation of this method should notify all registered `ListDataListener`s that the contents have changed.

  Specified by:
    `setSelectedItem` in interface `javax.swing.ComboBoxModel`
  Overrides:
    `setSelectedItem` in class `ListComboBoxModel<E extends java.lang.Enum<E>>`
  Parameters:
    `anItem` - the list object to select or `null` to clear the selection

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010. All Rights Reserved.