Module  java.desktop

Class BasicComboPopup

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializableAccessibleMenuElementComboPopup
    已知直接子类:
    MetalComboBoxUI.MetalComboPopup


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

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

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

    另请参见:
    Serialized Form
    • 字段详细信息

      • list

        protected JList<Object> list
        此保护字段是实现特定的。 不要直接访问或覆盖。 改用accessor方法。
        另请参见:
        getList()createList()
      • scroller

        protected JScrollPane scroller
        此保护字段是实现特定的。 不要直接访问或覆盖。 改用create方法
        另请参见:
        createScroller()
      • valueIsAdjusting

        protected boolean valueIsAdjusting
        从Java 2平台v1.4起,这个以前未记录的字段已不再使用了。
      • listMouseListener

        protected MouseListener listMouseListener
        此保护字段是实现特定的。 不要直接访问或覆盖。 改用create方法。
        另请参见:
        createListMouseListener()
      • itemListener

        protected ItemListener itemListener
        此保护字段是实现特定的。 不要直接访问或覆盖。 改用create方法
        另请参见:
        createItemListener()
      • autoscrollTimer

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

        protected boolean hasEntered
        true如果鼠标光标在弹出窗口。
      • isAutoScrolling

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

        protected int scrollDirection
        滚动方向。
      • SCROLL_DOWN

        protected static final int SCROLL_DOWN
        向下滚动的方向
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • BasicComboPopup

        public BasicComboPopup​(JComboBox<Object> combo)
        构造一个新的实例 BasicComboPopup
        参数
        combo -实例 JComboBox
    • 方法详细信息

      • getList

        public JList<Object> getList​()
        实现ComboPopup.getList()。
        Specified by:
        getList在接口 ComboPopup
        结果
        用于在组合框中绘制项目的列表
      • uninstallingUI

        public void uninstallingUI​()
        当UI卸载时调用。 因为这个弹出窗口不在组件树中,所以它不会得到它的uninstallUI()调用。 它删除在addComboBoxListeners()中添加的侦听器。
        Specified by:
        uninstallingUI在接口 ComboPopup
      • 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的列表数据监听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类时调用此方法。
        另请参见:
        createList()
      • installListListeners

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

        protected JScrollPane createScroller​()
        创建容纳可滚动列表的滚动窗格。
        结果
        容纳可滚动列表的滚动窗格
      • configureScroller

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

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

        protected void installComboBoxListeners​()
        此方法将必要的侦听器添加到JComboBox。
      • installKeyboardActions

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

        protected void startAutoScrolling​(int direction)
        此受保护方法是实现特定的,应该是私有的。 不要打电话或覆盖。
        参数
        direction - 滚动的方向
      • stopAutoScrolling

        protected void stopAutoScrolling​()
        此受保护方法是实现特定的,应该是私有的。 不要打电话或覆盖。
      • autoScrollUp

        protected void autoScrollUp​()
        此受保护方法是实现特定的,应该是私有的。 不要打电话或覆盖。
      • autoScrollDown

        protected void autoScrollDown​()
        此受保护方法是实现特定的,应该是私有的。 不要打电话或覆盖。
      • 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列表应该滚动。