com.jgoodies.binding.adapter
E
- the type of the combo box itemspublic final class ComboBoxAdapter<E> extends javax.swing.AbstractListModel implements javax.swing.ComboBoxModel
ComboBoxModel
implementation that holds the choice list and a
selection. This adapter has two modes that differ primarily in how
the selection is kept synchronized with the combo's list.
1) If you construct a ComboBoxAdapter with a SelectionInList
,
the selection will be guaranteed to be in the list, and the selection
will reflect changes in the list.
2) If you construct this adapter with a separate selection holder,
the selection won't be affected by any change in the combo's list.In both cases, the combo's list of element will reflect changes in the list, if it's a ListModel and will ignore content changes, if it's a List.
Example:
String[] countries = new String[] { "USA", "Germany", "France", ... }; // Using an array and ValueModel ValueModel countryModel = new PropertyAdapter(customer, "country", true); ComboBoxAdapter adapter = new ComboBoxAdapter(countries, contryModel); JComboBox countryBox = new JComboBox(adapter); // Using a List and ValueModel List countryList = Arrays.asList(countries); ValueModel countryModel = new PropertyAdapter(customer, "country", true); ComboBoxAdapter adapter = new ComboBoxAdapter(countryList, contryModel); JComboBox countryBox = new JComboBox(adapter); // Using a ListModel and ValueModel ListModel countryListModel = new ArrayListModel(Arrays.asList(countries)); ValueModel countryModel = new PropertyAdapter(customer, "country", true); ComboBoxAdapter adapter = new ComboBoxAdapter(countryListModel, contryModel); JComboBox countryBox = new JComboBox(adapter); // Using a SelectionInList - allows only selection of contained elements ListModel countryListModel = new ArrayListModel(Arrays.asList(countries)); ValueModel countryModel = new PropertyAdapter(customer, "country", true); SelectionInList sil = new SelectionInList(countryListModel, countryModel); ComboBoxAdapter adapter = new ComboBoxAdapter(sil); JComboBox countryBox = new JComboBox(adapter); // Using ValueModels for the list holder and the selection holder class Country extends Model { ListModel getLocales(); Locale getDefaultLocale(); void setDefaultLocale(Locale locale); } BeanAdapter beanAdapter = new BeanAdapter(null, true); ValueModel localesHolder = beanAdapter.getValueModel("locales"); ValueModel defaultLocaleModel = beanAdapter.getValueModel("defaultLocale"); ComboBoxAdapter adapter = new ComboBoxAdapter( localesHolder, defaultLocaleModel); JComboBox localeBox = new JComboBox(adapter); beanAdapter.setBean(myCountry);
JComboBox
,
Serialized FormConstructor and Description |
---|
ComboBoxAdapter(E[] items,
ValueModel selectionHolder)
Constructs a ComboBoxAdapter for the specified List of items and the
given selection holder.
|
ComboBoxAdapter(java.util.List<E> items,
ValueModel selectionHolder)
Constructs a ComboBoxAdapter for the specified List of items
and the given selection holder.
|
ComboBoxAdapter(javax.swing.ListModel listModel,
ValueModel selectionHolder)
Constructs a ComboBoxAdapter for the given ListModel and selection
holder.
|
ComboBoxAdapter(SelectionInList<E> selectionInList)
Constructs a ComboBoxAdapter for the given SelectionInList.
|
Modifier and Type | Method and Description |
---|---|
E |
getElementAt(int index)
Returns the value at the specified index.
|
E |
getSelectedItem()
Returns the selected item by requesting the current value from the
either the selection holder or the SelectionInList's selection.
|
int |
getSize()
Returns the length of the item list.
|
void |
setSelectedItem(java.lang.Object object)
Sets the selected item.
|
addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener
public ComboBoxAdapter(java.util.List<E> items, ValueModel selectionHolder)
Example:
String[] countries = new String[] { "USA", "Germany", "France", ... }; List countryList = Arrays.asList(countries); ValueModel countryModel = new PropertyAdapter(customer, "country", true); ComboBoxAdapter adapter = new ComboBoxAdapter(countryList, contryModel); JComboBox countryBox = new JComboBox(adapter);
items
- the list of itemsselectionHolder
- holds the selection of the combojava.lang.NullPointerException
- if the list of items or the selection holder
is null
public ComboBoxAdapter(javax.swing.ListModel listModel, ValueModel selectionHolder)
Example:
String[] countries = new String[] { "USA", "Germany", "France", ... }; ListModel countryList = new ArrayListModel(Arrays.asList(countries)); ValueModel countryModel = new PropertyAdapter(customer, "country", true); ComboBoxAdapter adapter = new ComboBoxAdapter(countryList, contryModel); JComboBox countryBox = new JComboBox(adapter);
listModel
- the initial list modelselectionHolder
- holds the selection of the combojava.lang.NullPointerException
- if the list of items or the selection holder
is null
public ComboBoxAdapter(E[] items, ValueModel selectionHolder)
Example:
String[] countries = new String[] { "USA", "Germany", "France", ... }; ValueModel countryModel = new PropertyAdapter(customer, "country", true); ComboBoxAdapter adapter = new ComboBoxAdapter(countries, contryModel); JComboBox countryBox = new JComboBox(adapter);
items
- the list of itemsselectionHolder
- holds the selection of the combojava.lang.NullPointerException
- if the list of items or the selection holder
is null
public ComboBoxAdapter(SelectionInList<E> selectionInList)
Example:
String[] countries = new String[] { "USA", "Germany", "France", ... }; List countryList = Arrays.asList(countries); ValueModel countryModel = new PropertyAdapter(customer, "country", true); SelectionInList sil = new SelectionInList(countryList, countryModel); ComboBoxAdapter adapter = new ComboBoxAdapter(sil); JComboBox countryBox = new JComboBox(adapter);
selectionInList
- provides the list and selectionjava.lang.NullPointerException
- if the selectionInList
is
null
public E getSelectedItem()
getSelectedItem
in interface javax.swing.ComboBoxModel
null
if there is no selectionpublic void setSelectedItem(java.lang.Object object)
ListDataListener
s that the contents has
changed.setSelectedItem
in interface javax.swing.ComboBoxModel
object
- the list object to select or null
to clear
the selectionpublic int getSize()
getSize
in interface javax.swing.ListModel
public E getElementAt(int index)
getElementAt
in interface javax.swing.ListModel
index
- the requested indexindex
Copyright © 2002-2010 JGoodies Karsten Lentzsch. All Rights Reserved.