javax.swing.plaf.basic
Class BasicComboPopup

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPopupMenu
                          |
                          +--javax.swing.plaf.basic.BasicComboPopup
All Implemented Interfaces:
Accessible, ComboPopup, ImageObserver, MenuContainer, MenuElement, Serializable
Direct Known Subclasses:
MetalComboBoxUI.MetalComboPopup
public class BasicComboPopup
extends JPopupMenu
implements ComboPopup

This is a basic implementation of the ComboPopup interface. 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 JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

 

Nested Class Summary

 class BasicComboPopup.InvocationKeyHandler
    As of Java 2 platform v 1.4, this class is now obsolete and is only included for backwards API compatibility.
protected  class BasicComboPopup.InvocationMouseHandler
    A 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  class BasicComboPopup.InvocationMouseMotionHandler
    This listener watches for dragging and updates the current selection in the list if it is dragging over the list.
protected  class BasicComboPopup.ItemHandler
    This listener watches for changes to the selection in the combo box.
 class BasicComboPopup.ListDataHandler
    As of 1.4, this class is now obsolete, doesn't do anything, and is only included for backwards API compatibility.
protected  class BasicComboPopup.ListMouseHandler
    This listener hides the popup when the mouse is released in the list.
protected  class BasicComboPopup.ListMouseMotionHandler
    This listener changes the selected item as you move the mouse over the list.
protected  class BasicComboPopup.ListSelectionHandler
    As 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  class BasicComboPopup.PropertyChangeHandler
    This listener watches for bound properties that have changed in the combo box.
 
Nested classes inherited from class javax.swing.JPopupMenu
JPopupMenu.AccessibleJPopupMenu, JPopupMenu.Separator
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 

 

Field Summary

protected  Timer autoscrollTimer
    This protected field is implementation specific.
protected  JComboBox comboBox
    
protected  boolean hasEntered
    
protected  boolean isAutoScrolling
    
protected  ItemListener itemListener
    This protected field is implementation specific.
protected  KeyListener keyListener
    This protected field is implementation specific.
protected  JList list
    This protected field is implementation specific.
protected  ListDataListener listDataListener
    This protected field is implementation specific.
protected  MouseListener listMouseListener
    This protected field is implementation specific.
protected  MouseMotionListener listMouseMotionListener
    This protected field is implementation specific.
protected  ListSelectionListener listSelectionListener
    This protected field is implementation specific.
protected  MouseListener mouseListener
    This protected field is implementation specific.
protected  MouseMotionListener mouseMotionListener
    This protected field is implementation specific.
protected  PropertyChangeListener propertyChangeListener
    This protected field is implementation specific.
protected static int SCROLL_DOWN
    
protected static int SCROLL_UP
    
protected  int scrollDirection
    
protected  JScrollPane scroller
    This protected field is implementation specific.
protected  boolean valueIsAdjusting
    As of Java 2 platform v1.4 this previously undocumented field is no longer used.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 

 

Constructor Summary

BasicComboPopup(JComboBox combo)
    
 

 

Method Summary

protected  void autoScrollDown()
    This protected method is implementation specific and should be private.
protected  void autoScrollUp()
    This protected method is implementation specific and should be private.
protected  Rectangle computePopupBounds(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  void configureList()
    Configures the list which is used to hold the combo box items in the popup.
protected  void configurePopup()
    Configures the popup portion of the combo box.
protected  void configureScroller()
    Configures the scrollable portion which holds the list within the combo box popup.
protected  MouseEvent convertMouseEvent(MouseEvent e)
    
protected  ItemListener createItemListener()
    Creates an ItemListener which will be added to the combo box.
protected  KeyListener createKeyListener()
    Creates the key listener that will be added to the combo box.
protected  JList createList()
    Creates the JList used in the popup to display the items in the combo box model.
protected  ListDataListener createListDataListener()
    Creates a list data listener which will be added to the ComboBoxModel.
protected  MouseListener createListMouseListener()
    Creates a mouse listener that watches for mouse events in the popup's list.
protected  MouseMotionListener createListMouseMotionListener()
    Creates a mouse motion listener that watches for mouse motion events in the popup's list.
protected  ListSelectionListener createListSelectionListener()
    Creates a list selection listener that watches for selection changes in the popup's list.
protected  MouseListener createMouseListener()
    Creates a listener that will watch for mouse-press and release events on the combo box.
protected  MouseMotionListener createMouseMotionListener()
    Creates the mouse motion listener which will be added to the combo box.
protected  PropertyChangeListener createPropertyChangeListener()
    Creates a PropertyChangeListener which will be added to the combo box.
protected  JScrollPane createScroller()
    Creates the scroll pane which houses the scrollable list.
protected  void delegateFocus(MouseEvent e)
    This is is a utility method that helps event handlers figure out where to send the focus when the popup is brought up.
protected  void firePopupMenuCanceled()
    Notifies PopupMenuListeners that this popup menu is cancelled.
protected  void firePopupMenuWillBecomeInvisible()
    Notifies PopupMenuListeners that this popup menu will become invisible.
protected  void firePopupMenuWillBecomeVisible()
    Notifies PopupMenuListeners that this popup menu will become visible.
 KeyListener getKeyListener()
    Implementation of ComboPopup.getKeyListener().
 JList getList()
    Implementation of ComboPopup.getList().
 MouseListener getMouseListener()
    Implementation of ComboPopup.getMouseListener().
 MouseMotionListener getMouseMotionListener()
    Implementation of ComboPopup.getMouseMotionListener().
protected  int getPopupHeightForRowCount(int maxRowCount)
    Retrieves the height of the popup based on the current ListCellRenderer and the maximum row count.
 void hide()
    Implementation of ComboPopup.hide().
protected  void installComboBoxListeners()
    This method adds the necessary listeners to the JComboBox.
protected  void installComboBoxModelListeners(ComboBoxModel model)
    Installs the listeners on the combo box model.
protected  void installKeyboardActions()
    
protected  void installListListeners()
    Adds the listeners to the list control.
 boolean isFocusTraversable()
    Overridden to unconditionally return false.
 void show()
    Implementation of ComboPopup.show().
protected  void startAutoScrolling(int direction)
    This protected method is implementation specific and should be private.
protected  void stopAutoScrolling()
    This protected method is implementation specific and should be private.
protected  void togglePopup()
    Makes the popup visible if it is hidden and makes it hidden if it is visible.
protected  void uninstallComboBoxModelListeners(ComboBoxModel model)
    Removes the listeners from the combo box model
 void uninstallingUI()
    Called when the UI is uninstalling.
protected  void uninstallKeyboardActions()
    
protected  void updateListBoxSelectionForEvent(MouseEvent anEvent, boolean shouldScroll)
    A utility method used by the event listeners.
 
Methods inherited from class javax.swing.JPopupMenu
add, add, add, addPopupMenuListener, addSeparator, createActionChangeListener, createActionComponent, getAccessibleContext, getComponent, getComponentAtIndex, getComponentIndex, getDefaultLightWeightPopupEnabled, getInvoker, getLabel, getMargin, getPopupMenuListeners, getSelectionModel, getSubElements, getUI, getUIClassID, insert, insert, isBorderPainted, isLightWeightPopupEnabled, isPopupTrigger, isVisible, menuSelectionChanged, pack