Class SJComboBox<T>
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.combobox.ComboBox<T>>, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<com.vaadin.flow.component.combobox.ComboBox<T>>, com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.combobox.ComboBox<T>>, com.vaadin.flow.component.HasAriaDescription, com.vaadin.flow.component.HasAriaLabel, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasHelper, com.vaadin.flow.component.HasLabel, com.vaadin.flow.component.HasPlaceholder, com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasTheme, com.vaadin.flow.component.HasValidation, com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.ComboBox<T>, T>, T>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.ComboBox<T>, T>, T>, com.vaadin.flow.component.shared.HasAllowedCharPattern, com.vaadin.flow.component.shared.HasAutoOpen, com.vaadin.flow.component.shared.HasClearButton, com.vaadin.flow.component.shared.HasPrefix, com.vaadin.flow.component.shared.HasThemeVariant<com.vaadin.flow.component.combobox.ComboBoxVariant>, com.vaadin.flow.component.shared.HasTooltip, com.vaadin.flow.component.shared.HasValidationProperties, com.vaadin.flow.component.shared.InputField<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.ComboBox<T>, T>, T>, com.vaadin.flow.data.binder.HasValidator<T>, com.vaadin.flow.data.provider.HasDataView<T, String, com.vaadin.flow.component.combobox.dataview.ComboBoxDataView<T>>, com.vaadin.flow.data.provider.HasLazyDataView<T, String, com.vaadin.flow.component.combobox.dataview.ComboBoxLazyDataView<T>>, com.vaadin.flow.data.provider.HasListDataView<T, com.vaadin.flow.component.combobox.dataview.ComboBoxListDataView<T>>, ComponentMixin, ContainerMixin, JComponentMixin, ItemSelectable, Serializable
JComboBox (SD_sjcombobox). Extends Vaadin
ComboBox and reproduces the Swing JComboBox UI functionality:
model-driven items + selection, ItemListener pair fan-out on
selection commit, ActionListener fan-out on commit,
PopupMenuListener fan-out on every open and close, the user's included
(addOpenedChangeListener(ComponentEventListener)),
editable mode wired to Vaadin's allowCustomValue, and
maximumRowCount mirroring Vaadin's pageSize.
Why ComboBox, not a leaf primitive
VaadinComboBox is the only native dropdown selector that
supports filterable item lists, custom values (typed input commit),
and a configurable popup. It cleanly carries JDK JComboBox's contract
for both editable and non-editable modes. Vaadin's Select<T>
was rejected: it doesn't allow custom values, has no filter UI, and
its popup is not page-sized.
Source of truth
The installedComboBoxModel is the source of truth for items
and selected item (R_swing_is_truth) — JDK reuses DefaultComboBoxModel, so
migrated user code that constructs / manipulates a model directly
keeps working unchanged. Our ListDataListener on the model
snapshots items into the peer via ComboBoxBase.setItems(java.util.Collection)
on every list change (Vaadin offers no incremental add API), and
pushes the model's current selection through ComboBoxBase.setValue(TValue).
Browser-originated edits funnel back through an explicit
addValueChangeListener subscription wrapped in
SHelper.callSwing(Runnable) (R_callswing_envelope) and write through
ComboBoxModel.setSelectedItem(Object), which fires the model's
ListDataEvent.CONTENTS_CHANGED and closes the loop. The
standard preventPeerEvents flag (R_swing_is_truth) guards against
peer→model→peer re-entry.
ItemEvent fan-out
On every selection commit the surrogate fans out the JDK-canonical pair:ItemEvent.DESELECTED on the previously-selected item
(when non-null) followed by ItemEvent.SELECTED on the
newly-selected item (when non-null). The ActionEvent fires
after the pair, matching JDK JComboBox's commit sequencing.
ComboBoxStateStore.lastSelected is the rolling cursor.
Editable mode
setEditable(boolean) maps to Vaadin's
ComboBoxBase.setAllowCustomValue(boolean). When enabled, a
customValueSetListener subscription commits the typed string
back into the model via model.setSelectedItem(typedString) —
the model's ListDataEvent then drives the usual fan-out. The
full ComboBoxEditor surface (custom editor
components, selectAll, separate editor ActionListener) is R_vaadin_first
drop-and-WARN — Vaadin owns the typed-input UX inside the combobox
and there's no semantic-cleanly-mappable counterpart for a custom
editor component.
Renderer
Vaadin-first per R_vaadin_first. Users at the surrogate layer install VaadinRenderer instances directly via
ComboBoxBase.setRenderer(Renderer) (or setItemLabelGenerator for
label-only customisation). The JDK ListCellRenderer
surface lives only on the :emulators.JComboBox layer and
bridges into a Vaadin renderer at the boundary — surrogate-layer code
sees Vaadin idioms only. The default rendering uses Vaadin's built-in
String.valueOf item-label generator (matching JDK's "model
value via toString" default), so a fresh SJComboBox renders sanely
with zero configuration.
R_vaadin_first drop-and-WARN surface
ComboBoxEditor(full editor port).KeySelectionManager(browser handles type-to-search).lightWeightPopupEnabled(Swing-internal popup chrome).prototypeDisplayValue(sizing hint).selectWithKeyChar(subsumed by browser type-to-search).
UI-thread-confined, with one exception: the installed ComboBoxModel may be
mutated from any thread. A worker filling it hops onto this combo's UI thread for each
model event and blocks until the fan-out has run, so every listener here — and the peer
write — runs on the UI thread; while the combo is detached, inline on the worker
(SD_background_model_hop):
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
layout.add(new SJComboBox<>(model));
executor.submit(() -> repository.findAllNames().forEach(model::addElement));
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classFired whenSJComboBox.OpenedChangeEvent.isOpened()changes;ComponentEvent.isFromClient()istruewhen the user opened or closed it.Nested classes/interfaces inherited from class com.vaadin.flow.component.combobox.ComboBox
com.vaadin.flow.component.combobox.ComboBox.ComboBoxI18n, com.vaadin.flow.component.combobox.ComboBox.FetchItemsCallback<T>, com.vaadin.flow.component.combobox.ComboBox.ItemFilter<T>Nested classes/interfaces inherited from class com.vaadin.flow.component.combobox.ComboBoxBase
com.vaadin.flow.component.combobox.ComboBoxBase.CustomValueSetEvent<TComponent>, com.vaadin.flow.component.combobox.ComboBoxBase.SpringDataNested classes/interfaces inherited from class com.vaadin.flow.component.AbstractField
com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C,V> Nested classes/interfaces inherited from interface com.vaadin.flow.component.BlurNotifier
com.vaadin.flow.component.BlurNotifier.BlurEvent<C>Nested classes/interfaces inherited from interface com.vaadin.flow.component.FocusNotifier
com.vaadin.flow.component.FocusNotifier.FocusEvent<C>Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasValue
com.vaadin.flow.component.HasValue.ValueChangeEvent<V>, com.vaadin.flow.component.HasValue.ValueChangeListener<E>Nested classes/interfaces inherited from interface JComponentMixin
JComponentMixin.ActionStandin -
Field Summary
Fields inherited from interface JComponentMixin
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW -
Constructor Summary
ConstructorsConstructorDescriptionSJComboBox(Vector<T> items) SJComboBox(ComboBoxModel<T> model) SJComboBox(T[] items) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidAdd an item via the model.voidvoidcom.vaadin.flow.shared.RegistrationaddOpenedChangeListener(com.vaadin.flow.component.ComponentEventListener<SJComboBox.OpenedChangeEvent> listener) Listens for the dropdown opening or closing, whichever side did it: theopened-changedeventDatePickerandSelectexpose andComboBoxlacks.voidvoidconfigureEditor(Object anEditor, Object anItem) protected voidFireActionEventto all registered ActionListeners.protected voidfireListDataEvent(ListDataEvent original) Forward a modelListDataEventto the surrogate's ownListDataListenerregistrations.protected voidprotected voidgetItemAt(int index) intintgetModel()intObject[]ItemSelectable.getSelectedObjects()contract: returns a single-element array when an item is selected, an empty array when none.Deliberate no-op — L&F key.voidvoidinsertItemAt(T item, int index) booleanbooleanbooleanvoidvoidvoidremoveItem(Object anObject) voidremoveItemAt(int anIndex) voidvoidvoidbooleanselectWithKeyChar(char keyChar) voidInstall (or clear) a JDKAction.voidsetActionCommand(String aCommand) voidsetEditable(boolean aFlag) voidvoidsetKeySelectionManager(Object aManager) voidsetLightWeightPopupEnabled(boolean aFlag) voidsetMaximumRowCount(int count) voidsetModel(ComboBoxModel<T> newModel) voidsetPopupVisible(boolean v) ComboBoxBase.setOpened(boolean); thePopupMenuListeners hear it throughaddOpenedChangeListener(ComponentEventListener), as they hear a user's click.voidsetPrototypeDisplayValue(T prototypeDisplayValue) voidsetSelectedIndex(int anIndex) voidsetSelectedItem(Object anObject) Select an item, rejecting one the model does not contain unless the combo box is editable, then route through the model so its ListDataEvent fan-out drives the ItemEvent pair and the ActionEvent.voidvoidvoidvalidate()Visibility-widening override ofComboBoxBase.validate()(Vaadin declares itprotectedfor input validation) to satisfyComponentMixin's publicvalidate()contract.Methods inherited from class com.vaadin.flow.component.combobox.ComboBox
getEmptyValue, getI18n, getPattern, isFocusSelectedItem, isSelected, refreshValue, setFocusSelectedItem, setI18n, setOverlayWidth, setOverlayWidth, setPattern, setRequiredIndicatorVisibleMethods inherited from class com.vaadin.flow.component.combobox.ComboBoxBase
addCustomValueSetListener, generateClassName, generateLabel, getAriaDescribedBy, getAriaLabel, getAriaLabelledBy, getDataCommunicator, getDataController, getDataGenerator, getDataProvider, getDefaultValidator, getFilter, getFilterTimeout, getGenericDataView, getItemClassNameGenerator, getItemLabelGenerator, getKeyMapper, getLazyDataView, getListDataView, getPageSize, getPartialMatchMode, getRenderManager, isAllowCustomValue, isAutofocus, isOpened, isRequired, isRequiredIndicatorVisible, onAttach, onDetach, runBeforeClientResponse, setAllowCustomValue, setAriaDescribedBy, setAriaLabel, setAriaLabelledBy, setAutofocus, setClassNameGenerator, setDataProvider, setDataProvider, setFilter, setFilterTimeout, setI18n, setItemLabelGenerator, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItems, setItemsPageable, setItemsPageable, setItemsWithFilterConverter, setItemsWithFilterConverter, setManualValidation, setOpened, setPageSize, setPartialMatchMode, setRenderer, setRequiredMethods inherited from class com.vaadin.flow.component.AbstractSinglePropertyField
getSynchronizationRegistration, hasValidValue, setPresentationValue, setSynchronizedEventMethods inherited from class com.vaadin.flow.component.AbstractField
addValueChangeListener, bindValue, getValue, isEmpty, setModelValue, valueEqualsMethods inherited from class com.vaadin.flow.component.Component
addListener, bindVisible, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTestId, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setTestId, setVisible, whenAttachedMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.BlurNotifier
addBlurListenerMethods inherited from interface ComponentMixin
_installSwingClass, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, dispatchEvent, doLayout, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getComponentListeners, getCursor, getFocusListeners, getFont, getForeground, getGraphics, getHierarchyBoundsListeners, getHierarchyListeners, getKeyListeners, getLocation, getMaximumSize, getMinimumSize, getMouseListeners, getName, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolTipText, getX, getY, grabFocus, hasFocus, invalidate, isDisplayable, isFocusable, isFocusOwner, isShowing, paint, paintAll, print, printAll, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, revalidate, setBackground, setBounds, setBounds, setCursor, setFocusable, setFont, setForeground, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, transferFocus, transferFocusBackward, transferFocusUpCycle, updateMethods inherited from interface ContainerMixin
addContainerListener, getContainerListeners, getLayout, paintComponents, printComponents, removeContainerListener, setLayoutMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, focus, focus, getTabIndex, setTabIndexMethods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListenerMethods inherited from interface com.vaadin.flow.component.shared.HasAllowedCharPattern
getAllowedCharPattern, setAllowedCharPatternMethods inherited from interface com.vaadin.flow.component.HasAriaDescription
setAriaDescribedByMethods inherited from interface com.vaadin.flow.component.HasAriaLabel
setAriaLabelledByMethods inherited from interface com.vaadin.flow.component.shared.HasAutoOpen
isAutoOpen, setAutoOpenMethods inherited from interface com.vaadin.flow.component.shared.HasClearButton
bindClearButtonVisible, isClearButtonVisible, setClearButtonVisibleMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
bindEnabled, isEnabledMethods inherited from interface com.vaadin.flow.component.HasHelper
bindHelperText, getHelperComponent, getHelperText, setHelperComponent, setHelperTextMethods inherited from interface com.vaadin.flow.component.HasLabel
getLabel, setLabelMethods inherited from interface com.vaadin.flow.data.provider.HasListDataView
setItemsMethods inherited from interface com.vaadin.flow.component.HasPlaceholder
bindPlaceholder, getPlaceholder, setPlaceholderMethods inherited from interface com.vaadin.flow.component.shared.HasPrefix
getPrefixComponent, setPrefixComponentMethods inherited from interface com.vaadin.flow.component.HasSize
bindHeight, bindWidth, getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFullMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, bindClassName, bindClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassNameMethods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, bindThemeName, bindThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeNameMethods inherited from interface com.vaadin.flow.component.shared.HasThemeVariant
addThemeVariants, bindThemeVariant, bindThemeVariants, removeThemeVariants, setThemeVariant, setThemeVariants, setThemeVariantsMethods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipMarkdown, setTooltipTextMethods inherited from interface com.vaadin.flow.component.shared.HasValidationProperties
getErrorMessage, isInvalid, setErrorMessage, setInvalidMethods inherited from interface com.vaadin.flow.data.binder.HasValidator
addValidationStatusChangeListenerMethods inherited from interface com.vaadin.flow.component.HasValue
addValueChangeListener, bindValue, clear, getOptionalValue, getValue, isEmptyMethods inherited from interface com.vaadin.flow.component.HasValueAndElement
bindReadOnly, bindRequiredIndicatorVisible, isReadOnly, setReadOnlyMethods inherited from interface JComponentMixin
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getLocation, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, isDoubleBuffered, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintImmediately, paintImmediately, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, requestDefaultFocus, resetKeyboardActions, reshape, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setInheritsPopupMenu, setInputMap, setInputVerifier, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, updateUI
-
Constructor Details
-
SJComboBox
public SJComboBox() -
SJComboBox
-
SJComboBox
-
SJComboBox
-
-
Method Details
-
setSelectedItem
Select an item, rejecting one the model does not contain unless the combo box is editable, then route through the model so its ListDataEvent fan-out drives the ItemEvent pair and the ActionEvent.The rejection is
javax.swing.JComboBox.setSelectedItem's own — not the model's, which is where SB-Emulators looked for it and did not find it:DefaultComboBoxModeldoes permit any value, so routing straight to the model leftgetSelectedItem()answering an item that was never in the list, where a real non-editable JComboBox answersnull(D_return_value_audit). Anullargument bypasses the check, as it does in the JDK.On a match, the model's element is selected rather than the argument — the JDK substitutes it deliberately, so an
equals-but-not-==argument does not displace the instance the model holds. -
getSelectedItem
-
getSelectedIndex
public int getSelectedIndex() -
setSelectedIndex
public void setSelectedIndex(int anIndex) -
getSelectedObjects
ItemSelectable.getSelectedObjects()contract: returns a single-element array when an item is selected, an empty array when none. JDK usesObject[](notT[]) because the interface predates generics — preserved verbatim.- Specified by:
getSelectedObjectsin interfaceItemSelectable
-
setValue
- Specified by:
setValuein interfacecom.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.combobox.ComboBox<T>, T>, T>- Overrides:
setValuein classcom.vaadin.flow.component.combobox.ComboBoxBase<com.vaadin.flow.component.combobox.ComboBox<T>, T, T>
-
addItem
Add an item via the model. ThrowsIllegalStateExceptionif the installed model isn't aMutableComboBoxModel— matches JDK JComboBox's "you must use a MutableComboBoxModel" runtime check (R_match_swing_errors). -
insertItemAt
-
removeItem
-
removeItemAt
public void removeItemAt(int anIndex) -
removeAllItems
public void removeAllItems() -
getItemAt
-
getItemCount
public int getItemCount() -
getModel
-
setModel
-
isEditable
public boolean isEditable() -
setEditable
public void setEditable(boolean aFlag) -
getMaximumRowCount
public int getMaximumRowCount() -
setMaximumRowCount
public void setMaximumRowCount(int count) -
isPopupVisible
public boolean isPopupVisible() -
setPopupVisible
public void setPopupVisible(boolean v) ComboBoxBase.setOpened(boolean); thePopupMenuListeners hear it throughaddOpenedChangeListener(ComponentEventListener), as they hear a user's click. -
showPopup
public void showPopup() -
hidePopup
public void hidePopup() -
addOpenedChangeListener
public com.vaadin.flow.shared.Registration addOpenedChangeListener(com.vaadin.flow.component.ComponentEventListener<SJComboBox.OpenedChangeEvent> listener) Listens for the dropdown opening or closing, whichever side did it: theopened-changedeventDatePickerandSelectexpose andComboBoxlacks.combo.addOpenedChangeListener(e -> { if (e.isOpened() && e.isFromClient()) reloadItems(); }); -
addItemListener
- Specified by:
addItemListenerin interfaceItemSelectable
-
removeItemListener
- Specified by:
removeItemListenerin interfaceItemSelectable
-
getItemListeners
-
addActionListener
-
removeActionListener
-
getActionListeners
-
getActionCommand
-
setActionCommand
-
fireActionEvent
protected void fireActionEvent()FireActionEventto all registered ActionListeners. Source = this; command = current actionCommand; timestamp = now; modifiers = 0 (no input device). -
addPopupMenuListener
-
removePopupMenuListener
-
getPopupMenuListeners
-
firePopupMenuWillBecomeVisible
protected void firePopupMenuWillBecomeVisible() -
firePopupMenuWillBecomeInvisible
protected void firePopupMenuWillBecomeInvisible() -
addListDataListener
-
removeListDataListener
-
fireListDataEvent
Forward a modelListDataEventto the surrogate's ownListDataListenerregistrations. JDK JComboBox does the same — it implementsListDataListeneron the model and re-fires through its own listener registry. Source rebound to the surrogate's model (matches JDK source in the forwarded event). -
setAction
Install (or clear) a JDKAction. Matches JDK JComboBox's narrow action surface: enabled / SHORT_DESCRIPTION (tooltip) / ACTION_COMMAND_KEY are honored; NAME / icon / mnemonic are not (JDK JComboBox doesn't surface those — combo boxes don't carry label text like buttons do). The Action'sactionPerformedis invoked alongside our own ActionListener fan-out on every selection commit, with source rebound tothis. -
getAction
-
getEditor
-
setEditor
-
configureEditor
-
getKeySelectionManager
-
setKeySelectionManager
-
isLightWeightPopupEnabled
public boolean isLightWeightPopupEnabled() -
setLightWeightPopupEnabled
public void setLightWeightPopupEnabled(boolean aFlag) -
getPrototypeDisplayValue
-
setPrototypeDisplayValue
-
selectWithKeyChar
public boolean selectWithKeyChar(char keyChar) -
validate
public void validate()Visibility-widening override ofComboBoxBase.validate()(Vaadin declares itprotectedfor input validation) to satisfyComponentMixin's publicvalidate()contract. Delegates to super so Vaadin's input-validation behaviour is preserved.- Specified by:
validatein interfaceComponentMixin- Overrides:
validatein classcom.vaadin.flow.component.combobox.ComboBoxBase<com.vaadin.flow.component.combobox.ComboBox<T>, T, T>
-
getUIClassID
Description copied from interface:JComponentMixinDeliberate no-op — L&F key.- Specified by:
getUIClassIDin interfaceJComponentMixin
-