- All Implemented Interfaces:
- ImageObserver,- MenuContainer,- Serializable,- Accessible,- MenuElement,- ComboPopup
- Direct Known Subclasses:
- MetalComboBoxUI.MetalComboPopup
ComboPopup interface.
 This class represents the ui for the popup portion of the combo box.
 
 All event handling is handled by listener classes created with the
 createxxxListener() methods and internal classes.
 You can change the behavior of this class by overriding the
 createxxxListener() methods and supplying your own
 event listeners or subclassing from the ones supplied in this class.
 
 Warning:
 Serialized objects of this class will not be compatible with
 future Swing releases. The current serialization support is
 appropriate for short term storage or RMI between applications running
 the same version of Swing.  As of 1.4, support for long term storage
 of all JavaBeans
 has been added to the java.beans package.
 Please see XMLEncoder.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionclassAs of Java 2 platform v 1.4, this class is now obsolete and is only included for backwards API compatibility.protected classA listener to be registered upon the combo box (not its popup menu) to handle mouse events that affect the state of the popup menu.protected classThis listener watches for dragging and updates the current selection in the list if it is dragging over the list.protected classThis listener watches for changes to the selection in the combo box.classAs of 1.4, this class is now obsolete, doesn't do anything, and is only included for backwards API compatibility.protected classThis listener hides the popup when the mouse is released in the list.protected classThis listener changes the selected item as you move the mouse over the list.protected classAs of Java 2 platform v 1.4, this class is now obsolete, doesn't do anything, and is only included for backwards API compatibility.protected classThis listener watches for bound properties that have changed in the combo box.Nested classes/interfaces declared in class javax.swing.JPopupMenuJPopupMenu.AccessibleJPopupMenu, JPopupMenu.SeparatorNested classes/interfaces declared in class javax.swing.JComponentJComponent.AccessibleJComponentNested classes/interfaces declared in class java.awt.ContainerContainer.AccessibleAWTContainerNested classes/interfaces declared in class java.awt.ComponentComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected TimerThis protected field is implementation specific.The instance ofJComboBox.protected booleantrueif the mouse cursor is in the popup.protected booleanIftruethe auto-scrolling is enabled.protected ItemListenerThis protected field is implementation specific.protected KeyListenerThis protected field is implementation specific.This protected field is implementation specific.protected ListDataListenerThis protected field is implementation specific.protected MouseListenerThis protected field is implementation specific.protected MouseMotionListenerThis protected field is implementation specific.protected ListSelectionListenerThis protected field is implementation specific.protected MouseListenerThis protected field is implementation specific.protected MouseMotionListenerThis protected field is implementation specific.protected PropertyChangeListenerThis protected field is implementation specific.protected static final intThe direction of scrolling down.protected static final intThe direction of scrolling up.protected intThe direction of scrolling.protected JScrollPaneThis protected field is implementation specific.protected booleanAs of Java 2 platform v1.4 this previously undocumented field is no longer used.Fields declared in class javax.swing.JComponentlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields declared in class java.awt.ComponentaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields declared in interface java.awt.image.ImageObserverABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
- 
Constructor SummaryConstructorsConstructorDescriptionBasicComboPopup(JComboBox<Object> combo) Constructs a new instance ofBasicComboPopup.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidThis protected method is implementation specific and should be private.protected voidThis protected method is implementation specific and should be private.protected RectanglecomputePopupBounds(int px, int py, int pw, int ph) Calculate the placement and size of the popup portion of the combo box based on the combo box location and the enclosing screen bounds.protected voidConfigures the list which is used to hold the combo box items in the popup.protected voidConfigures the popup portion of the combo box.protected voidConfigures the scrollable portion which holds the list within the combo box popup.protected MouseEventConverts mouse event.protected ItemListenerCreates anItemListenerwhich will be added to the combo box.protected KeyListenerCreates the key listener that will be added to the combo box.Creates the JList used in the popup to display the items in the combo box model.protected ListDataListenerCreates a list data listener which will be added to theComboBoxModel.protected MouseListenerCreates a mouse listener that watches for mouse events in the popup's list.protected MouseMotionListenerCreates a mouse motion listener that watches for mouse motion events in the popup's list.protected ListSelectionListenerCreates a list selection listener that watches for selection changes in the popup's list.protected MouseListenerCreates a listener that will watch for mouse-press and release events on the combo box.protected MouseMotionListenerCreates the mouse motion listener which will be added to the combo box.protected PropertyChangeListenerCreates aPropertyChangeListenerwhich will be added to the combo box.protected JScrollPaneCreates the scroll pane which houses the scrollable list.protected voidThis is a utility method that helps event handlers figure out where to send the focus when the popup is brought up.Gets the AccessibleContext associated with this BasicComboPopup.Implementation of ComboPopup.getKeyListener().getList()Implementation of ComboPopup.getList().Implementation of ComboPopup.getMouseListener().Implementation of ComboPopup.getMouseMotionListener().protected intgetPopupHeightForRowCount(int maxRowCount) Retrieves the height of the popup based on the current ListCellRenderer and the maximum row count.voidhide()Implementation of ComboPopup.hide().protected voidThis method adds the necessary listeners to the JComboBox.protected voidinstallComboBoxModelListeners(ComboBoxModel<?> model) Installs the listeners on the combo box model.protected voidRegisters keyboard actions.protected voidAdds the listeners to the list control.booleanOverridden to unconditionally return false.voidshow()Implementation of ComboPopup.show().protected voidstartAutoScrolling(int direction) This protected method is implementation specific and should be private.protected voidThis protected method is implementation specific and should be private.protected voidMakes the popup visible if it is hidden and makes it hidden if it is visible.protected voiduninstallComboBoxModelListeners(ComboBoxModel<?> model) Removes the listeners from the combo box modelvoidCalled when the UI is uninstalling.protected voidUnregisters keyboard actions.protected voidupdateListBoxSelectionForEvent(MouseEvent anEvent, boolean shouldScroll) A utility method used by the event listeners.Methods declared in class javax.swing.JPopupMenuadd, add, add, addMenuKeyListener, addPopupMenuListener, addSeparator, createActionChangeListener, createActionComponent, firePopupMenuCanceled, firePopupMenuWillBecomeInvisible, firePopupMenuWillBecomeVisible, getComponent, getComponentAtIndex, getComponentIndex, getDefaultLightWeightPopupEnabled, getInvoker, getLabel, getMargin, getMenuKeyListeners, getPopupMenuListeners, getSelectionModel, getSubElements, getUI, getUIClassID, insert, insert, isBorderPainted, isLightWeightPopupEnabled, isPopupTrigger, isVisible, menuSelectionChanged, pack, paintBorder, paramString, processKeyEvent, processKeyEvent, processMouseEvent, remove, removeMenuKeyListener, removePopupMenuListener, setBorderPainted, setDefaultLightWeightPopupEnabled, setInvoker, setLabel, setLightWeightPopupEnabled, setLocation, setPopupSize, setPopupSize, setSelected, setSelectionModel, setUI, setVisible, show, updateUIMethods declared in class javax.swing.JComponentaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, updateMethods declared in class java.awt.Containeradd, 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, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeMethods declared in class java.awt.Componentaction, 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, 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, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, 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, setMixingCutoutShape, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods declared in class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods declared in interface javax.swing.plaf.basic.ComboPopupisVisible
- 
Field Details- 
comboBoxThe instance ofJComboBox.
- 
listThis protected field is implementation specific. Do not access directly or override. Use the accessor methods instead.- See Also:
 
- 
scrollerThis protected field is implementation specific. Do not access directly or override. Use the create method instead- See Also:
 
- 
valueIsAdjustingprotected boolean valueIsAdjustingAs of Java 2 platform v1.4 this previously undocumented field is no longer used.
- 
mouseMotionListenerThis protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.- See Also:
 
- 
mouseListenerThis protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.- See Also:
 
- 
keyListenerThis protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.- See Also:
 
- 
listSelectionListenerThis protected field is implementation specific. Do not access directly or override. Use the create method instead.- See Also:
 
- 
listMouseListenerThis protected field is implementation specific. Do not access directly or override. Use the create method instead.- See Also:
 
- 
listMouseMotionListenerThis protected field is implementation specific. Do not access directly or override. Use the create method instead- See Also:
 
- 
propertyChangeListenerThis protected field is implementation specific. Do not access directly or override. Use the create method instead- See Also:
 
- 
listDataListenerThis protected field is implementation specific. Do not access directly or override. Use the create method instead- See Also:
 
- 
itemListenerThis protected field is implementation specific. Do not access directly or override. Use the create method instead- See Also:
 
- 
autoscrollTimerThis protected field is implementation specific. Do not access directly or override.
- 
hasEnteredprotected boolean hasEnteredtrueif the mouse cursor is in the popup.
- 
isAutoScrollingprotected boolean isAutoScrollingIftruethe auto-scrolling is enabled.
- 
scrollDirectionprotected int scrollDirectionThe direction of scrolling.
- 
SCROLL_UPprotected static final int SCROLL_UPThe direction of scrolling up.- See Also:
 
- 
SCROLL_DOWNprotected static final int SCROLL_DOWNThe direction of scrolling down.- See Also:
 
 
- 
- 
Constructor Details- 
BasicComboPopupConstructs a new instance ofBasicComboPopup.- Parameters:
- combo- an instance of- JComboBox
 
 
- 
- 
Method Details- 
showpublic void show()Implementation of ComboPopup.show().- Specified by:
- showin interface- ComboPopup
- Overrides:
- showin class- Component
 
- 
hidepublic void hide()Implementation of ComboPopup.hide().- Specified by:
- hidein interface- ComboPopup
- Overrides:
- hidein class- JComponent
 
- 
getListImplementation of ComboPopup.getList().- Specified by:
- getListin interface- ComboPopup
- Returns:
- the list that is being used to draw the items in the combo box
 
- 
getMouseListenerImplementation of ComboPopup.getMouseListener().- Specified by:
- getMouseListenerin interface- ComboPopup
- Returns:
- a MouseListeneror null
- See Also:
 
- 
getMouseMotionListenerImplementation of ComboPopup.getMouseMotionListener().- Specified by:
- getMouseMotionListenerin interface- ComboPopup
- Returns:
- a MouseMotionListeneror null
- See Also:
 
- 
getKeyListenerImplementation of ComboPopup.getKeyListener().- Specified by:
- getKeyListenerin interface- ComboPopup
- Returns:
- a KeyListeneror null
- See Also:
 
- 
uninstallingUIpublic void uninstallingUI()Called when the UI is uninstalling. Since this popup isn't in the component tree, it won't get it's uninstallUI() called. It removes the listeners that were added in addComboBoxListeners().- Specified by:
- uninstallingUIin interface- ComboPopup
 
- 
uninstallComboBoxModelListenersRemoves the listeners from the combo box model- Parameters:
- model- The combo box model to install listeners
- See Also:
 
- 
uninstallKeyboardActionsprotected void uninstallKeyboardActions()Unregisters keyboard actions.
- 
createMouseListenerCreates a listener that will watch for mouse-press and release events on the combo box. Warning: When overriding this method, make sure to maintain the existing behavior.- Returns:
- a MouseListenerwhich will be added to the combo box or null
 
- 
createMouseMotionListenerCreates the mouse motion listener which will be added to the combo box. Warning: When overriding this method, make sure to maintain the existing behavior.- Returns:
- a MouseMotionListenerwhich will be added to the combo box or null
 
- 
createKeyListenerCreates the key listener that will be added to the combo box. If this method returns null then it will not be added to the combo box.- Returns:
- a KeyListeneror null
 
- 
createListSelectionListenerCreates a list selection listener that watches for selection changes in the popup's list. If this method returns null then it will not be added to the popup list.- Returns:
- an instance of a ListSelectionListeneror null
 
- 
createListDataListenerCreates a list data listener which will be added to theComboBoxModel. If this method returns null then it will not be added to the combo box model.- Returns:
- an instance of a ListDataListeneror null
 
- 
createListMouseListenerCreates a mouse listener that watches for mouse events in the popup's list. If this method returns null then it will not be added to the combo box.- Returns:
- an instance of a MouseListeneror null
 
- 
createListMouseMotionListenerCreates a mouse motion listener that watches for mouse motion events in the popup's list. If this method returns null then it will not be added to the combo box.- Returns:
- an instance of a MouseMotionListeneror null
 
- 
createPropertyChangeListenerCreates aPropertyChangeListenerwhich will be added to the combo box. If this method returns null then it will not be added to the combo box.- Returns:
- an instance of a PropertyChangeListeneror null
 
- 
createItemListenerCreates anItemListenerwhich will be added to the combo box. If this method returns null then it will not be added to the combo box.Subclasses may override this method to return instances of their own ItemEvent handlers. - Returns:
- an instance of an ItemListeneror null
 
- 
createListCreates the JList used in the popup to display the items in the combo box model. This method is called when the UI class is created.- Returns:
- a JListused to display the combo box items
 
- 
configureListprotected void configureList()Configures the list which is used to hold the combo box items in the popup. This method is called when the UI class is created.- See Also:
 
- 
installListListenersprotected void installListListeners()Adds the listeners to the list control.
- 
createScrollerCreates the scroll pane which houses the scrollable list.- Returns:
- the scroll pane which houses the scrollable list
 
- 
configureScrollerprotected void configureScroller()Configures the scrollable portion which holds the list within the combo box popup. This method is called when the UI class is created.
- 
configurePopupprotected void configurePopup()Configures the popup portion of the combo box. This method is called when the UI class is created.
- 
installComboBoxListenersprotected void installComboBoxListeners()This method adds the necessary listeners to the JComboBox.
- 
installComboBoxModelListenersInstalls the listeners on the combo box model. Any listeners installed on the combo box model should be removed inuninstallComboBoxModelListeners.- Parameters:
- model- The combo box model to install listeners
- See Also:
 
- 
installKeyboardActionsprotected void installKeyboardActions()Registers keyboard actions.
- 
isFocusTraversablepublic boolean isFocusTraversable()Overridden to unconditionally return false.- Overrides:
- isFocusTraversablein class- Component
- Returns:
- trueif this- Componentis focusable;- falseotherwise
- See Also:
 
- 
startAutoScrollingprotected void startAutoScrolling(int direction) This protected method is implementation specific and should be private. do not call or override.- Parameters:
- direction- the direction of scrolling
 
- 
stopAutoScrollingprotected void stopAutoScrolling()This protected method is implementation specific and should be private. do not call or override.
- 
autoScrollUpprotected void autoScrollUp()This protected method is implementation specific and should be private. do not call or override.
- 
autoScrollDownprotected void autoScrollDown()This protected method is implementation specific and should be private. do not call or override.
- 
getAccessibleContextGets the AccessibleContext associated with this BasicComboPopup. The AccessibleContext will have its parent set to the ComboBox.- Specified by:
- getAccessibleContextin interface- Accessible
- Overrides:
- getAccessibleContextin class- JPopupMenu
- Returns:
- an AccessibleContext for the BasicComboPopup
- Since:
- 1.5
 
- 
delegateFocusThis is a utility method that helps event handlers figure out where to send the focus when the popup is brought up. The standard implementation delegates the focus to the editor (if the combo box is editable) or to the JComboBox if it is not editable.- Parameters:
- e- a mouse event
 
- 
togglePopupprotected void togglePopup()Makes the popup visible if it is hidden and makes it hidden if it is visible.
- 
convertMouseEventConverts mouse event.- Parameters:
- e- a mouse event
- Returns:
- converted mouse event
 
- 
getPopupHeightForRowCountprotected int getPopupHeightForRowCount(int maxRowCount) Retrieves the height of the popup based on the current ListCellRenderer and the maximum row count.- Parameters:
- maxRowCount- the row count
- Returns:
- the height of the popup
 
- 
computePopupBoundsCalculate the placement and size of the popup portion of the combo box based on the combo box location and the enclosing screen bounds. If no transformations are required, then the returned rectangle will have the same values as the parameters.- Parameters:
- px- starting x location
- py- starting y location
- pw- starting width
- ph- starting height
- Returns:
- a rectangle which represents the placement and size of the popup
 
- 
updateListBoxSelectionForEventA utility method used by the event listeners. Given a mouse event, it changes the list selection to the list item below the mouse.- Parameters:
- anEvent- a mouse event
- shouldScroll- if- truelist should be scrolled.
 
 
-