package org.jdesktop.swingx.combobox; import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; import javax.swing.ListModel; import javax.swing.event.ListDataListener; public class ListModelComboBoxWrapper extends AbstractListModel implements ComboBoxModel { private ListModel delegate; private Object selectedItem; public ListModelComboBoxWrapper(ListModel delegate) { this.delegate = delegate; } @Override public int getSize() { return delegate.getSize(); } @Override public Object getElementAt(int index) { return delegate.getElementAt(index); } @Override public void addListDataListener(ListDataListener l) { super.addListDataListener(l); delegate.addListDataListener(l); } @Override public void removeListDataListener(ListDataListener l) { delegate.removeListDataListener(l); super.removeListDataListener(l); } @Override public void setSelectedItem(Object anItem) { if ((selectedItem != null && !selectedItem.equals(anItem)) || selectedItem == null && anItem != null) { selectedItem = anItem; fireContentsChanged(this, -1, -1); } } @Override public Object getSelectedItem() { return selectedItem; } }