Module java.desktop

Class BasicComboPopup

所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible, MenuElement, ComboPopup
直接已知的子类:
MetalComboBoxUI.MetalComboPopup

public class BasicComboPopup extends JPopupMenu implements ComboPopup
这是ComboPopup接口的基本实现。该类表示组合框弹出部分的UI。

所有事件处理都由使用createxxxListener()方法和内部类创建的监听器类处理。您可以通过覆盖createxxxListener()方法并提供自己的事件监听器或从此类提供的监听器子类化来更改此类的行为。

警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参见XMLEncoder

  • Field Details

    • comboBox

      protected JComboBox<Object> comboBox
      JComboBox的实例。
    • list

      protected JList<Object> list
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用访问器方法。
      参见:
    • scroller

      protected JScrollPane scroller
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用创建方法。
      参见:
    • valueIsAdjusting

      protected boolean valueIsAdjusting
      从Java 2平台v1.4开始,此先前未记录的字段不再使用。
    • mouseMotionListener

      protected MouseMotionListener mouseMotionListener
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用访问器或创建方法。
      参见:
    • mouseListener

      protected MouseListener mouseListener
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用访问器或创建方法。
      参见:
    • keyListener

      protected KeyListener keyListener
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用访问器或创建方法。
      参见:
    • listSelectionListener

      protected ListSelectionListener listSelectionListener
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用创建方法。
      参见:
    • listMouseListener

      protected MouseListener listMouseListener
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用创建方法。
      参见:
    • listMouseMotionListener

      protected MouseMotionListener listMouseMotionListener
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用创建方法。
      参见:
    • propertyChangeListener

      protected PropertyChangeListener propertyChangeListener
      此受保护字段是特定于实现的。请勿直接访问或覆盖。请改用创建方法。
      参见:
    • listDataListener

      protected ListDataListener listDataListener
      这个受保护的字段是特定于实现的。不要直接访问或覆盖。请改用create方法
      参见:
    • itemListener

      protected ItemListener itemListener
      这个受保护的字段是特定于实现的。不要直接访问或覆盖。请改用create方法
      参见:
    • autoscrollTimer

      protected Timer autoscrollTimer
      这个受保护的字段是特定于实现的。不要直接访问或覆盖。
    • hasEntered

      protected boolean hasEntered
      如果鼠标光标在弹出窗口中,则为true
    • isAutoScrolling

      protected boolean isAutoScrolling
      如果为true,则启用自动滚动。
    • scrollDirection

      protected int scrollDirection
      滚动的方向。
    • SCROLL_UP

      protected static final int SCROLL_UP
      向上滚动的方向。
      参见:
    • SCROLL_DOWN

      protected static final int SCROLL_DOWN
      向下滚动的方向。
      参见:
  • Constructor Details

    • BasicComboPopup

      public BasicComboPopup(JComboBox<Object> combo)
      构造一个BasicComboPopup的新实例。
      参数:
      combo - 一个JComboBox的实例
  • Method Details

    • show

      public void show()
      ComboPopup.show()的实现。
      指定者:
      show 在接口 ComboPopup
      覆盖:
      show 在类 Component
    • hide

      public void hide()
      ComboPopup.hide()的实现。
      指定者:
      hide 在接口 ComboPopup
      覆盖:
      hide 在类 JComponent
    • getList

      public JList<Object> getList()
      ComboPopup.getList()的实现。
      指定者:
      getList 在接口 ComboPopup
      返回:
      用于绘制组合框中项目的列表
    • getMouseListener

      public MouseListener getMouseListener()
      ComboPopup.getMouseListener()的实现。
      指定者:
      getMouseListener 在接口 ComboPopup
      返回:
      一个MouseListener或null
      参见:
    • getMouseMotionListener

      public MouseMotionListener getMouseMotionListener()
      ComboPopup.getMouseMotionListener()的实现。
      指定者:
      getMouseMotionListener 在接口 ComboPopup
      返回:
      一个MouseMotionListener或null
      参见:
    • getKeyListener

      public KeyListener getKeyListener()
      ComboPopup.getKeyListener()的实现。
      指定者:
      getKeyListener 在接口 ComboPopup
      返回:
      一个KeyListener或null
      参见:
    • uninstallingUI

      public void uninstallingUI()
      当UI正在卸载时调用。由于此弹出窗口不在组件树中,因此不会调用其uninstallUI()。它会移除在addComboBoxListeners()中添加的侦听器。
      指定者:
      uninstallingUI 在接口 ComboPopup
    • uninstallComboBoxModelListeners

      protected void uninstallComboBoxModelListeners(ComboBoxModel<?> model)
      从组合框模型中移除侦听器
      参数:
      model - 要安装侦听器的组合框模型
      参见:
    • uninstallKeyboardActions

      protected void uninstallKeyboardActions()
      注销键盘操作。
    • createMouseListener

      protected MouseListener createMouseListener()
      创建一个监听器,用于监视组合框上的鼠标按下和释放事件。 警告:在覆盖此方法时,请确保保持现有行为不变。
      返回:
      一个将添加到组合框中的MouseListener或null
    • createMouseMotionListener

      protected MouseMotionListener createMouseMotionListener()
      创建将添加到组合框中的鼠标移动监听器。 警告:在覆盖此方法时,请确保保持现有行为不变。
      返回:
      一个将添加到组合框中的MouseMotionListener或null
    • createKeyListener

      protected KeyListener createKeyListener()
      创建将添加到组合框中的键盘监听器。如果此方法返回null,则不会将其添加到组合框中。
      返回:
      一个KeyListener或null
    • createListSelectionListener

      protected ListSelectionListener createListSelectionListener()
      创建一个列表选择监听器,用于监视弹出列表中的选择更改。如果此方法返回null,则不会将其添加到弹出列表中。
      返回:
      一个ListSelectionListener的实例或null
    • createListDataListener

      protected ListDataListener createListDataListener()
      创建将添加到ComboBoxModel中的列表数据监听器。如果此方法返回null,则不会将其添加到组合框模型中。
      返回:
      一个ListDataListener的实例或null
    • createListMouseListener

      protected MouseListener createListMouseListener()
      创建一个鼠标监听器,用于监视弹出列表中的鼠标事件。如果此方法返回null,则不会将其添加到组合框中。
      返回:
      一个MouseListener的实例或null
    • createListMouseMotionListener

      protected MouseMotionListener createListMouseMotionListener()
      创建一个鼠标移动监听器,用于监视弹出列表中的鼠标移动事件。如果此方法返回null,则不会将其添加到组合框中。
      返回:
      一个MouseMotionListener的实例或null
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      创建一个将添加到组合框中的PropertyChangeListener。如果此方法返回null,则不会将其添加到组合框中。
      返回:
      一个PropertyChangeListener的实例或null
    • createItemListener

      protected ItemListener createItemListener()
      创建一个将添加到组合框中的ItemListener。如果此方法返回null,则不会将其添加到组合框中。

      子类可以覆盖此方法以返回其自己的ItemEvent处理程序的实例。

      返回:
      一个ItemListener的实例或null
    • createList

      protected JList<Object> createList()
      创建用于在弹出窗口中显示组合框模型中项目的JList。在创建UI类时调用此方法。
      返回:
      用于显示组合框项目的JList
    • configureList

      protected void configureList()
      配置用于在弹出窗口中保存组合框项目的列表。在创建UI类时调用此方法。
      参见:
    • installListListeners

      protected void installListListeners()
      将侦听器添加到列表控件。
    • createScroller

      protected JScrollPane createScroller()
      创建包含可滚动列表的滚动窗格。
      返回:
      包含可滚动列表的滚动窗格
    • configureScroller

      protected void configureScroller()
      配置在组合框弹出窗口中保存列表的可滚动部分。在创建UI类时调用此方法。
    • configurePopup

      protected void configurePopup()
      配置组合框的弹出部分。在创建UI类时调用此方法。
    • installComboBoxListeners

      protected void installComboBoxListeners()
      此方法向JComboBox添加必要的侦听器。
    • installComboBoxModelListeners

      protected void installComboBoxModelListeners(ComboBoxModel<?> model)
      在组合框模型上安装侦听器。在组合框模型上安装的任何侦听器应在uninstallComboBoxModelListeners中移除。
      参数:
      model - 要安装侦听器的组合框模型
      参见:
    • installKeyboardActions

      protected void installKeyboardActions()
      注册键盘操作。
    • isFocusTraversable

      public boolean isFocusTraversable()
      被覆盖以无条件地返回false。
      覆盖:
      isFocusTraversable 在类 Component
      返回:
      如果此Component可聚焦,则为true;否则为false
    • startAutoScrolling

      protected void startAutoScrolling(int direction)
      这个受保护的方法是特定于实现的,应该是私有的。不要调用或覆盖。
      参数:
      direction - 滚动的方向
    • stopAutoScrolling

      protected void stopAutoScrolling()
      这个受保护的方法是特定于实现的,应该是私有的。不要调用或覆盖。
    • autoScrollUp

      protected void autoScrollUp()
      这个受保护的方法是特定于实现的,应该是私有的。不要调用或覆盖。
    • autoScrollDown

      protected void autoScrollDown()
      这个受保护的方法是特定于实现的,应该是私有的。不要调用或覆盖。
    • getAccessibleContext

      public AccessibleContext getAccessibleContext()
      获取与此BasicComboPopup关联的AccessibleContext。AccessibleContext将其父级设置为ComboBox。
      指定者:
      getAccessibleContext 在接口 Accessible
      覆盖:
      getAccessibleContext 在类 JPopupMenu
      返回:
      BasicComboPopup的AccessibleContext
      自从:
      1.5
    • delegateFocus

      protected void delegateFocus(MouseEvent e)
      这是一个实用方法,帮助事件处理程序确定在弹出窗口弹出时将焦点发送到何处。标准实现将焦点委托给编辑器(如果组合框是可编辑的)或者如果不可编辑,则委托给JComboBox。
      参数:
      e - 鼠标事件
    • togglePopup

      protected void togglePopup()
      如果弹出窗口是隐藏的,则使其可见,如果弹出窗口是可见的,则使其隐藏。
    • convertMouseEvent

      protected MouseEvent convertMouseEvent(MouseEvent e)
      转换鼠标事件。
      参数:
      e - 鼠标事件
      返回:
      转换后的鼠标事件
    • getPopupHeightForRowCount

      protected int getPopupHeightForRowCount(int maxRowCount)
      根据当前的ListCellRenderer和最大行数检索弹出窗口的高度。
      参数:
      maxRowCount - 行数
      返回:
      弹出窗口的高度
    • computePopupBounds

      protected Rectangle computePopupBounds(int px, int py, int pw, int ph)
      根据组合框位置和包围屏幕边界计算组合框弹出部分的放置和大小。如果不需要转换,则返回的矩形将具有与参数相同的值。
      参数:
      px - 起始x位置
      py - 起始y位置
      pw - 起始宽度
      ph - 起始高度
      返回:
      代表弹出窗口放置和大小的矩形
    • updateListBoxSelectionForEvent

      protected void updateListBoxSelectionForEvent(MouseEvent anEvent, boolean shouldScroll)
      事件侦听器使用的实用方法。给定鼠标事件,将列表选择更改为鼠标下方的列表项。
      参数:
      anEvent - 鼠标事件
      shouldScroll - 如果为true,则应滚动列表。