public class ComboBox<T> extends List<T> implements ActionSource
A ComboBox is a list that allows only one selection at a time, when a user clicks
the ComboBox a popup button with the full list of elements allows the selection of
a single element. The ComboBox is driven by the list model and allows all the renderer
features of the List as well.
The ComboBox is notoriously hard to style properly as it relies on a complex dynamic of
popup renderer and instantly visible renderer. The UIID for the ComboBox is "ComboBox"
however if you set it to something else all the other UIID's will also change their prefix. E.g. the "ComboBoxPopup"
UIID will become "MyNewUIIDPopup".
The combo box defines the following UIID's by default:
ComboBoxComboBoxItemComboBoxFocusPopupContentPanePopupItemPopupFocusThis class also defines theme constants that allow some native themes to manipulate its behavior e.g.:
ComboBox
itself. When this is false PopupItem & PopupFocus become irrelevant. Notice that the
Android native theme defines this to true.
iOS doesn't use combo boxes as part of its UI paradigm. Its available there mostly in web applications and feels
unnatural in iOS which is why we recommend using the Picker class.
The sample code below uses the GenericListCellRenderer to create a richer
ComboBox UI.

ListFIXED_CENTER, FIXED_LEAD, FIXED_NONE, FIXED_NONE_CYCLIC, FIXED_NONE_ONE_ELEMENT_MARGIN_FROM_EDGE, FIXED_TRAIL, HORIZONTAL, VERTICALBASELINE, BOTTOM, BRB_CENTER_OFFSET, BRB_CONSTANT_ASCENT, BRB_CONSTANT_DESCENT, BRB_OTHER, CENTER, CROSSHAIR_CURSOR, DEFAULT_CURSOR, DRAG_REGION_IMMEDIATELY_DRAG_X, DRAG_REGION_IMMEDIATELY_DRAG_XY, DRAG_REGION_IMMEDIATELY_DRAG_Y, DRAG_REGION_LIKELY_DRAG_X, DRAG_REGION_LIKELY_DRAG_XY, DRAG_REGION_LIKELY_DRAG_Y, DRAG_REGION_NOT_DRAGGABLE, DRAG_REGION_POSSIBLE_DRAG_X, DRAG_REGION_POSSIBLE_DRAG_XY, DRAG_REGION_POSSIBLE_DRAG_Y, E_RESIZE_CURSOR, HAND_CURSOR, LEFT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NW_RESIZE_CURSOR, RIGHT, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, TOP, W_RESIZE_CURSOR, WAIT_CURSOR| Constructor and Description |
|---|
ComboBox()
Constructs an empty combo box
|
ComboBox(ListModel<T> model)
Creates a new instance of ComboBox
|
ComboBox(Object... items)
Creates a new instance of ComboBox
|
ComboBox(Vector<T> items)
Creates a new instance of ComboBox
|
| Modifier and Type | Method and Description |
|---|---|
protected Dimension |
calcPreferredSize()
Calculates the preferred size based on component content.
|
protected Dialog |
createPopupDialog(List<T> l)
Subclasses can override this method to change the creation of the dialog
|
protected List<T> |
createPopupList()
Creates the list object used within the popup dialog.
|
protected void |
fireClicked()
When working in 3 softbutton mode "fire" key (center softbutton) is sent to this method
in order to allow 3 button devices to work properly.
|
int |
getBaseline(int width,
int height)
The baseline for the component text according to which it should be aligned
with other components for best visual look.
|
Image |
getComboBoxImage()
Gets the ComboBox drop down icon
|
int |
getOrientation()
Returns the list orientation
|
Rectangle |
getSelectedRect()
Returns the component bounds with absolute screen coordinates, for components that include an internal selection behavior
and are not containers (currently only List) this method allows returning the position of the selection
itself which is useful for things such as the popup dialog and similar UI's that need to reference the
position of the selection externally
|
protected Rectangle |
getVisibleBounds()
Returns the component bounds for scrolling which might differ from the getBounds for large components
e.g.
|
boolean |
isActAsSpinnerDialog()
When this flag is active the combo box acts as a button that opens a dialog that looks like a spinner
this allows creating user interfaces for touch devices where a spinner UI approach is more common than
a combo box paradigm.
|
static boolean |
isDefaultActAsSpinnerDialog()
When this flag is active the combo box acts as a button that opens a dialog that looks like a spinner
this allows creating user interfaces for touch devices where a spinner UI approach is more common than
a combo box paradigm.
|
static boolean |
isDefaultIncludeSelectCancel()
Indicates whethe the soft buttons for select/cancel should appear for the combo box by default
|
boolean |
isIncludeSelectCancel()
Indicates whethe the soft buttons for select/cancel should appear for the combo box
|
boolean |
isShowingPopupDialog()
Returns true if the popup dialog is currently showing for this combobox.
|
void |
keyReleased(int keyCode)
If this Component is focused, the key released event
will call this method
|
protected void |
laidOut()
This is a callback method to inform the Component when it's been laidout
on the parent Container
|
void |
paint(Graphics g)
This method paints the Component on the screen, it should be overriden
by subclasses to perform custom drawing or invoke the UI API's to let
the PLAF perform the rendering.
|
void |
pointerDragged(int x,
int y)
If this Component is focused, the pointer dragged event
will call this method
|
void |
pointerHover(int[] x,
int[] y)
Invoked for devices where the pointer can hover without actually clicking
the display.
|
void |
pointerHoverReleased(int[] x,
int[] y)
Invoked for devices where the pointer can hover without actually clicking
the display.
|
void |
pointerPressed(int x,
int y)
If this Component is focused, the pointer pressed event
will call this method
|
void |
pointerReleased(int x,
int y)
If this Component is focused, the pointer released event
will call this method
|
void |
setActAsSpinnerDialog(boolean actAsSpinnerDialog)
When this flag is active the combo box acts as a button that opens a dialog that looks like a spinner
this allows creating user interfaces for touch devices where a spinner UI approach is more common than
a combo box paradigm.
|
void |
setComboBoxImage(Image comboBoxImage)
Sets the ComboBox drop down icon
|
static void |
setDefaultActAsSpinnerDialog(boolean aDefaultActAsSpinnerDialog)
When this flag is active the combo box acts as a button that opens a dialog that looks like a spinner
this allows creating user interfaces for touch devices where a spinner UI approach is more common than
a combo box paradigm.
|
static void |
setDefaultIncludeSelectCancel(boolean aDefaultIncludeSelectCancel)
Indicates whethe the soft buttons for select/cancel should appear for the combo box by default
|
void |
setIncludeSelectCancel(boolean includeSelectCancel)
Indicates whethe the soft buttons for select/cancel should appear for the combo box
|
void |
setSelectedIndex(int selection)
Sets the current selected offset in the list, by default this implementation
will scroll the list to the selection if the selection is outside of the screen
|
void |
setSelectedIndex(int selection,
boolean scroll)
Sets the current selected offset in the list
|
void |
setUIID(String uiid)
This method sets the Component the Unique identifier.
|
protected Command |
showPopupDialog(Dialog popupDialog,
List l)
Shows the popup dialog for the combo box and returns the resulting command.
|
addActionListener, addItem, addSelectionListener, animate, fireActionEvent, fireActionEvent, getActionListeners, getCurrentSelected, getDragRegionStatus, getFixedSelection, getGridPosX, getGridPosY, getHint, getHintIcon, getItemGap, getListeners, getListSizeCalculationSampleCount, getMaxElementHeight, getMinElementHeight, getModel, getRenderer, getRenderingPrototype, getSelectedIndex, getSelectedItem, getSideGap, initLaf, isCommandList, isDefaultFireOnClick, isDefaultIgnoreFocusComponentWhenUnfocused, isIgnoreFocusComponentWhenUnfocused, isLongPointerPressActionEnabled, isMutableRendererBackgrounds, isNumericKeyActions, isScrollableX, isScrollableY, isSelectableInteraction, isTactileTouch, keyPressed, listSelectionChanged, longPointerPress, modelChanged, paramString, refreshTheme, removeActionListener, removeSelectionListener, scrollRectToVisible, setCommandList, setDefaultFireOnClick, setDefaultIgnoreFocusComponentWhenUnfocused, setFireOnClick, setFixedSelection, setHandlesInput, setHint, setHint, setHintIcon, setIgnoreFocusComponentWhenUnfocused, setInputOnFocus, setItemGap, setListCellRenderer, setListSizeCalculationSampleCount, setLongPointerPressActionEnabled, setMaxElementHeight, setMinElementHeight, setModel, setMutableRendererBackgrounds, setNumericKeyActions, setOrientation, setPaintFocusBehindList, setRenderer, setRenderingPrototype, setScrollToSelected, setSelectedItem, setShouldCalcPreferredSize, shouldRenderSelection, sizeaddDragFinishedListener, addDragOverListener, addDropListener, addFocusListener, addLongPressListener, addPointerDraggedListener, addPointerPressedListener, addPointerReleasedListener, addPullToRefresh, addScrollListener, addStateChangeListener, bindProperty, blocksSideSwipe, calcScrollSize, cancelRepaints, clearClientProperties, contains, containsOrOwns, createStyleAnimation, deinitialize, deinitializeCustomStyle, dragEnter, dragExit, dragFinished, draggingOver, dragInitiated, drawDraggedImage, drop, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getAllStyles, getAnimationManager, getBaselineResizeBehavior, getBindablePropertyNames, getBindablePropertyTypes, getBorder, getBottomGap, getBoundPropertyValue, getBounds, getBounds, getClientProperty, getCloudBoundProperty, getCloudDestinationProperty, getComponentForm, getComponentState, getCursor, getDefaultDragTransparency, getDirtyRegion, getDisabledStyle, getDraggedx, getDraggedy, getDragImage, getDragSpeed, getDragTransparency, getEditingDelegate, getHeight, getInlineAllStyles, getInlineDisabledStyles, getInlinePressedStyles, getInlineSelectedStyles, getInlineStylesTheme, getInlineUnselectedStyles, getInnerHeight, getInnerPreferredH, getInnerPreferredW, getInnerWidth, getInnerX, getInnerY, getLabelForComponent, getName, getNativeOverlay, getNextFocusDown, getNextFocusLeft, getNextFocusRight, getNextFocusUp, getOuterHeight, getOuterPreferredH, getOuterPreferredW, getOuterWidth, getOuterX, getOuterY, getOwner, getParent, getPreferredH, getPreferredSize, getPreferredSizeStr, getPreferredTabIndex, getPreferredW, getPressedStyle, getPropertyNames, getPropertyTypeNames, getPropertyTypes, getPropertyValue, getSameHeight, getSameWidth, getScrollable, getScrollAnimationSpeed, getScrollDimension, getScrollOpacity, getScrollOpacityChangeSpeed, getScrollX, getScrollY, getSelectCommandText, getSelectedStyle, getStyle, getTabIndex, getTensileLength, getTextSelectionSupport, getTooltip, getUIID, getUIManager, getUnselectedStyle, getVisibleBounds, getWidth, getX, getY, growShrink, handlesInput, hasFixedPreferredSize, hasFocus, hideNativeOverlay, initComponent, initCustomStyle, initDisabledStyle, initPressedStyle, initSelectedStyle, initUnselectedStyle, installDefaultPainter, isAlwaysTensile, isBlockLead, isCellRenderer, isChildOf, isDragActivated, isDragAndDropOperation, isDraggable, isDragRegion, isDropTarget, isEditable, isEditing, isEnabled, isFlatten, isFocusable, isGrabsPointerEvents, isHidden, isHidden, isHideInLandscape, isHideInPortrait, isIgnorePointerEvents, isInClippingRegion, isInitialized, isOpaque, isOwnedBy, isPinchBlocksDragAndDrop, isRippleEffect, isRTL, isScrollable, isScrollVisible, isSetCursorSupported, isSmoothScrolling, isSnapToGrid, isStickyDrag, isTactileTouch, isTensileDragEnabled, isTraversable, isVisible, keyRepeated, longKeyPress, onScrollX, onScrollY, paintBackground, paintBackgrounds, paintBorder, paintBorderBackground, paintComponent, paintComponent, paintIntersectingComponentsAbove, paintLock, paintLockRelease, paintRippleOverlay, paintScrollbars, paintScrollbarX, paintScrollbarY, paintShadows, parsePreferredSize, pinch, pinch, pinchReleased, pointerDragged, pointerHoverPressed, pointerPressed, pointerReleased, putClientProperty, refreshTheme, refreshTheme, remove, removeDragFinishedListener, removeDragOverListener, removeDropListener, removeFocusListener, removeLongPressListener, removePointerDraggedListener, removePointerPressedListener, removePointerReleasedListener, removeScrollListener, removeStateChangeListener, repaint, repaint, requestFocus, resetFocusable, respondsToPointerEvents, scrollRectToVisible, scrollRectToVisible, setAlwaysTensile, setBlockLead, setBoundPropertyValue, setCellRenderer, setCloudBoundProperty, setCloudDestinationProperty, setComponentState, setCursor, setDefaultDragTransparency, setDirtyRegion, setDisabledStyle, setDraggable, setDragTransparency, setDropTarget, setEditingDelegate, setEnabled, setFlatten, setFocus, setFocusable, setGrabsPointerEvents, setHeight, setHidden, setHidden, setHideInLandscape, setHideInPortrait, setIgnorePointerEvents, setInitialized, setInlineAllStyles, setInlineDisabledStyles, setInlinePressedStyles, setInlineSelectedStyles, setInlineStylesTheme, setInlineUnselectedStyles, setIsScrollVisible, setLabelForComponent, setName, setNextFocusDown, setNextFocusLeft, setNextFocusRight, setNextFocusUp, setOpaque, setOwner, setPinchBlocksDragAndDrop, setPreferredH, setPreferredSize, setPreferredSizeStr, setPreferredTabIndex, setPreferredW, setPressedStyle, setPropertyValue, setRippleEffect, setRTL, setSameHeight, setSameSize, setSameWidth, setScrollAnimationSpeed, setScrollOpacityChangeSpeed, setScrollSize, setScrollVisible, setScrollX, setScrollY, setSelectCommandText, setSelectedStyle, setSize, setSmoothScrolling, setSnapToGrid, setTabIndex, setTactileTouch, setTensileDragEnabled, setTensileLength, setTooltip, setTraversable, setUIID, setUnselectedStyle, setVisible, setWidth, setX, setY, shouldBlockSideSwipe, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, shouldRenderComponentSelection, showNativeOverlay, startEditingAsync, stopEditing, stripMarginAndPadding, styleChanged, toImage, toString, unbindProperty, updateNativeOverlay, visibleBoundsContainsclone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitaddActionListener, removeActionListenerpublic ComboBox(Vector<T> items)
items - set of items placed into the combo box modelpublic ComboBox(Object... items)
items - set of items placed into the combo box modelpublic ComboBox()
public static boolean isDefaultActAsSpinnerDialog()
public static void setDefaultActAsSpinnerDialog(boolean aDefaultActAsSpinnerDialog)
aDefaultActAsSpinnerDialog - the defaultActAsSpinnerDialog to setpublic void setComboBoxImage(Image comboBoxImage)
comboBoxImage - the drop down iconpublic Image getComboBoxImage()
public void setUIID(String uiid)
public int getBaseline(int width,
int height)
getBaseline in class Componentwidth - the component widthheight - the component heightprotected void laidOut()
public Rectangle getSelectedRect()
getSelectedRect in class List<T>protected Rectangle getVisibleBounds()
getVisibleBounds in class List<T>Component.getX(),
Component.getY(),
Component.getVisibleBounds(com.codename1.ui.geom.Rectangle)public void setSelectedIndex(int selection)
setSelectedIndex in class List<T>selection - the current selected offset in the listpublic void setSelectedIndex(int selection,
boolean scroll)
setSelectedIndex in class List<T>selection - the current selected offset in the listscroll - indicates whether scrolling to selection should
occur if the selection is outside of viewpublic void pointerHover(int[] x,
int[] y)
pointerHover in class List<T>x - the pointer x coordinatey - the pointer y coordinatepublic void pointerHoverReleased(int[] x,
int[] y)
pointerHoverReleased in class List<T>x - the pointer x coordinatey - the pointer y coordinateprotected Dialog createPopupDialog(List<T> l)
l - the list of the popuppublic boolean isShowingPopupDialog()
protected Command showPopupDialog(Dialog popupDialog, List l)
popupDialog - the popup dialogl - the list withinprotected void fireClicked()
fireClicked in class List<T>protected List<T> createPopupList()
public void keyReleased(int keyCode)
keyReleased in class List<T>keyCode - the key code value to indicate a physical key.public void pointerPressed(int x,
int y)
pointerPressed in class List<T>x - the pointer x coordinatey - the pointer y coordinatepublic void pointerDragged(int x,
int y)
pointerDragged in class List<T>x - the pointer x coordinatey - the pointer y coordinatepublic void pointerReleased(int x,
int y)
pointerReleased in class List<T>x - the pointer x coordinatey - the pointer y coordinatepublic void paint(Graphics g)
protected Dimension calcPreferredSize()
calcPreferredSize in class List<T>public int getOrientation()
getOrientation in class List<T>List.HORIZONTAL,
List.VERTICALpublic boolean isIncludeSelectCancel()
public void setIncludeSelectCancel(boolean includeSelectCancel)
includeSelectCancel - the new valuepublic static boolean isDefaultIncludeSelectCancel()
public static void setDefaultIncludeSelectCancel(boolean aDefaultIncludeSelectCancel)
aDefaultIncludeSelectCancel - the new valuepublic boolean isActAsSpinnerDialog()
public void setActAsSpinnerDialog(boolean actAsSpinnerDialog)
actAsSpinnerDialog - the actAsSpinnerDialog to set