Class JXComboBox
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JComboBox
-
- org.jdesktop.swingx.JXComboBox
-
- All Implemented Interfaces:
java.awt.event.ActionListener,java.awt.image.ImageObserver,java.awt.ItemSelectable,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible,javax.swing.event.ListDataListener
public class JXComboBox extends javax.swing.JComboBoxAn enhancedJComboBoxthat provides the following additional functionality:Auto-starts edits correctly for AutoCompletion when inside a
JTable. A normalJComboBoxfails to recognize the first key stroke when it has beendecorated.Adds highlighting support.
- Author:
- Karl Schaefer, Jeanette Winzenburg
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classJXComboBox.ComboBoxAdapterclassJXComboBox.DelegatingRendererA decorator for the original ListCellRenderer.-
Nested classes/interfaces inherited from class javax.swing.JComboBox
javax.swing.JComboBox.AccessibleJComboBox, javax.swing.JComboBox.KeySelectionManager
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
-
Fields inherited from class javax.swing.JComboBox
actionCommand, dataModel, editor, isEditable, keySelectionManager, lightWeightPopupEnabled, maximumRowCount, renderer, selectedItemReminder
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description JXComboBox()Creates aJXComboBoxwith a default data model.JXComboBox(java.lang.Object[] items)Creates aJXComboBoxthat contains the elements in the specified array.JXComboBox(java.util.Vector<?> items)Creates aJXComboBoxthat contains the elements in the specified Vector.JXComboBox(javax.swing.ComboBoxModel model)Creates aJXComboBoxthat takes its items from an existingComboBoxModel.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddHighlighter(Highlighter highlighter)Adds a Highlighter.protected javax.swing.ListCellRenderercreateDefaultCellRenderer()Creates and returns the default cell renderer to use.protected javax.swing.event.ChangeListenercreateHighlighterChangeListener()Creates and returns the ChangeListener observing Highlighters.protected ComponentAdaptergetComponentAdapter()protected ComponentAdaptergetComponentAdapter(int index)Convenience to access a configured ComponentAdapter.protected javax.swing.event.ChangeListenergetHighlighterChangeListener()Returns theChangeListenerto use with highlighters.Highlighter[]getHighlighters()Returns theHighlighters used by this column.protected static javax.swing.JListgetPopupListFor(javax.swing.JComboBox comboBox)javax.swing.ListCellRenderergetRenderer()javax.swing.ListCellRenderergetWrappedRenderer()Returns the renderer installed by client code or the default if none has been set.booleanisUseHighlightersForCurrentValue()protected booleanprocessKeyBinding(javax.swing.KeyStroke ks, java.awt.event.KeyEvent e, int condition, boolean pressed)voidremoveHighlighter(Highlighter highlighter)Removes the given Highlighter.voidsetHighlighters(Highlighter... highlighters)Sets theHighlighters to the column, replacing any old settings.voidsetRenderer(javax.swing.ListCellRenderer renderer)voidsetUseHighlightersForCurrentValue(boolean useHighlightersForCurrentValue)voidupdateUI()-
Methods inherited from class javax.swing.JComboBox
actionPerformed, actionPropertyChanged, addActionListener, addItem, addItemListener, addPopupMenuListener, configureEditor, configurePropertiesFromAction, contentsChanged, createActionPropertyChangeListener, createDefaultKeySelectionManager, fireActionEvent, fireItemStateChanged, firePopupMenuCanceled, firePopupMenuWillBecomeInvisible, firePopupMenuWillBecomeVisible, getAccessibleContext, getAction, getActionCommand, getActionListeners, getEditor, getItemAt, getItemCount, getItemListeners, getKeySelectionManager, getMaximumRowCount, getModel, getPopupMenuListeners, getPrototypeDisplayValue, getSelectedIndex, getSelectedItem, getSelectedObjects, getUI, getUIClassID, hidePopup, insertItemAt, installAncestorListener, intervalAdded, intervalRemoved, isEditable, isLightWeightPopupEnabled, isPopupVisible, paramString, processKeyEvent, removeActionListener, removeAllItems, removeItem, removeItemAt, removeItemListener, removePopupMenuListener, selectedItemChanged, selectWithKeyChar, setAction, setActionCommand, setEditable, setEditor, setEnabled, setKeySelectionManager, setLightWeightPopupEnabled, setMaximumRowCount, setModel, setPopupVisible, setPrototypeDisplayValue, setSelectedIndex, setSelectedItem, setUI, showPopup
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
JXComboBox
public JXComboBox()
Creates aJXComboBoxwith a default data model. The default data model is an empty list of objects. UseaddItemto add items. By default the first item in the data model becomes selected.- See Also:
DefaultComboBoxModel
-
JXComboBox
public JXComboBox(javax.swing.ComboBoxModel model)
Creates aJXComboBoxthat takes its items from an existingComboBoxModel. Since theComboBoxModelis provided, a combo box created using this constructor does not create a default combo box model and may impact how the insert, remove and add methods behave.- Parameters:
model- theComboBoxModelthat provides the displayed list of items- See Also:
DefaultComboBoxModel
-
JXComboBox
public JXComboBox(java.lang.Object[] items)
Creates aJXComboBoxthat contains the elements in the specified array. By default the first item in the array (and therefore the data model) becomes selected.- Parameters:
items- an array of objects to insert into the combo box- See Also:
DefaultComboBoxModel
-
JXComboBox
public JXComboBox(java.util.Vector<?> items)
Creates aJXComboBoxthat contains the elements in the specified Vector. By default the first item in the vector (and therefore the data model) becomes selected.- Parameters:
items- an array of vectors to insert into the combo box- See Also:
DefaultComboBoxModel
-
-
Method Detail
-
getPopupListFor
protected static javax.swing.JList getPopupListFor(javax.swing.JComboBox comboBox)
-
processKeyBinding
protected boolean processKeyBinding(javax.swing.KeyStroke ks, java.awt.event.KeyEvent e, int condition, boolean pressed)- Overrides:
processKeyBindingin classjavax.swing.JComboBox
-
getComponentAdapter
protected ComponentAdapter getComponentAdapter()
- Returns:
- the unconfigured ComponentAdapter.
-
getComponentAdapter
protected ComponentAdapter getComponentAdapter(int index)
Convenience to access a configured ComponentAdapter. Note: the column index of the configured adapter is always 0.- Parameters:
index- the row index in view coordinates, must be valid.- Returns:
- the configured ComponentAdapter.
-
createDefaultCellRenderer
protected javax.swing.ListCellRenderer createDefaultCellRenderer()
Creates and returns the default cell renderer to use. Subclasses may override to use a different type. Here: returns aDefaultListRenderer.- Returns:
- the default cell renderer to use with this list.
-
getRenderer
public javax.swing.ListCellRenderer getRenderer()
Overridden to return the delegating renderer which is wrapped around the original to support highlighting. The returned renderer is of type DelegatingRenderer and guaranteed to not-null
- Overrides:
getRendererin classjavax.swing.JComboBox- See Also:
setRenderer(ListCellRenderer),JXComboBox.DelegatingRenderer
-
getWrappedRenderer
public javax.swing.ListCellRenderer getWrappedRenderer()
Returns the renderer installed by client code or the default if none has been set.- Returns:
- the wrapped renderer.
- See Also:
#setCellRenderer(TreeCellRenderer)
-
setRenderer
public void setRenderer(javax.swing.ListCellRenderer renderer)
Overridden to wrap the given renderer in a DelegatingRenderer to support highlighting.
Note: the wrapping implies that the renderer returned from the getCellRenderer is not the renderer as given here, but the wrapper. To access the original, use
getWrappedCellRenderer.- Overrides:
setRendererin classjavax.swing.JComboBox- See Also:
#getWrappedCellRenderer(),#getCellRenderer()
-
isUseHighlightersForCurrentValue
public boolean isUseHighlightersForCurrentValue()
-
setUseHighlightersForCurrentValue
public void setUseHighlightersForCurrentValue(boolean useHighlightersForCurrentValue)
-
setHighlighters
public void setHighlighters(Highlighter... highlighters)
Sets theHighlighters to the column, replacing any old settings. None of the given Highlighters must be null.- Parameters:
highlighters- zero or more not null highlighters to use for renderer decoration.- See Also:
getHighlighters(),addHighlighter(Highlighter),removeHighlighter(Highlighter)
-
getHighlighters
public Highlighter[] getHighlighters()
Returns theHighlighters used by this column. Maybe empty, but guarantees to be never null.- Returns:
- the Highlighters used by this column, guaranteed to never null.
- See Also:
setHighlighters(Highlighter[])
-
addHighlighter
public void addHighlighter(Highlighter highlighter)
Adds a Highlighter. Appends to the end of the list of used Highlighters.- Parameters:
highlighter- theHighlighterto add.- Throws:
java.lang.NullPointerException- ifHighlighteris null.- See Also:
removeHighlighter(Highlighter),setHighlighters(Highlighter[])
-
removeHighlighter
public void removeHighlighter(Highlighter highlighter)
Removes the given Highlighter.Does nothing if the Highlighter is not contained.
- Parameters:
highlighter- the Highlighter to remove.- See Also:
addHighlighter(Highlighter),setHighlighters(Highlighter...)
-
getHighlighterChangeListener
protected javax.swing.event.ChangeListener getHighlighterChangeListener()
Returns theChangeListenerto use with highlighters. Lazily creates the listener.- Returns:
- the ChangeListener for observing changes of highlighters, guaranteed to be
not-null
-
createHighlighterChangeListener
protected javax.swing.event.ChangeListener createHighlighterChangeListener()
Creates and returns the ChangeListener observing Highlighters.A property change event is create for a state change.
- Returns:
- the ChangeListener defining the reaction to changes of highlighters.
-
updateUI
public void updateUI()
Overridden to update renderer and highlighters.
- Overrides:
updateUIin classjavax.swing.JComboBox
-
-