模块  java.desktop
软件包  javax.swing

Class JComboBox<E>

    • 构造方法详细信息

      • JComboBox

        public JComboBox​(ComboBoxModel<E> aModel)
        创建一个JComboBox ,其中包含现有ComboBoxModel项目。 由于提供了ComboBoxModel ,因此使用此构造函数创建的组合框不会创建默认的组合框模型,并且可能会影响插入,移除和添加方法的行为方式。
        参数
        aModel - ComboBoxModel ,提供显示的项目列表
        另请参见:
        DefaultComboBoxModel
      • JComboBox

        public JComboBox​(E[] items)
        创建一个包含指定数组中元素的JComboBox 默认情况下,数组中的第一项(以及数据模型)将被选中。
        参数
        items - 要插入组合框的对象数组
        另请参见:
        DefaultComboBoxModel
      • JComboBox

        public JComboBox​(Vector<E> items)
        创建一个包含指定Vector中元素的JComboBox 默认情况下,矢量中的第一项(以及数据模型)将被选中。
        参数
        items - 要插入组合框的向量数组
        另请参见:
        DefaultComboBoxModel
      • JComboBox

        public JComboBox()
        使用默认数据模型创建JComboBox 默认数据模型是一个空的对象列表。 使用addItem添加项目。 默认情况下,数据模型中的第一项将被选中。
        另请参见:
        DefaultComboBoxModel
    • 方法详细信息

      • installAncestorListener

        protected void installAncestorListener()
        注册祖先听众,以便当它或其任何祖先移动或变得可见或不可见时,它将收到AncestorEvents 当从包含层次结构中添加或删除组件或其祖先时,也会发送事件。
      • getUI

        public ComboBoxUI getUI()
        返回呈现此组件的L&F对象。
        重写:
        getUIJComponent
        结果
        呈现此组件的ComboBoxUI对象
      • setModel

        @BeanProperty(description="Model that the combo box uses to get data to display.")
        public void setModel​(ComboBoxModel<E> aModel)
        设置 JComboBox用于获取项目列表的数据模型。
        参数
        aModel - ComboBoxModel ,提供显示的项目列表
      • getModel

        public ComboBoxModel<E> getModel()
        返回 JComboBox当前使用的数据模型。
        结果
        ComboBoxModel ,提供显示的项目列表
      • setLightWeightPopupEnabled

        @BeanProperty(expert=true,
                      description="Set to <code>false</code> to require heavyweight popups.")
        public void setLightWeightPopupEnabled​(boolean aFlag)
        设置lightWeightPopupEnabled属性,提供关于是否应使用轻量级Component来包含JComboBox ,而不是重量级Component ,如PanelWindow 轻量级与重量级的决定最终取决于JComboBox 轻量级窗口比重量级窗口更有效,但轻量级和重量级组件在GUI中不能很好地混合。 如果您的应用程序混合轻量级和重量级组件,则应禁用轻量级弹出窗口。 为默认值lightWeightPopupEnabled属性为true ,除非外观另有规定。 无论此属性的价值如何,一些外观总是使用重量级弹出窗口。

        请参阅文章Mixing Heavy and Light Components此方法触发属性更改事件。

        参数
        aFlag - 如果是 true ,则需要轻量级弹出窗口
      • isLightWeightPopupEnabled

        public boolean isLightWeightPopupEnabled()
        获取 lightWeightPopupEnabled属性的值。
        结果
        lightWeightPopupEnabled属性的值
        另请参见:
        setLightWeightPopupEnabled(boolean)
      • setEditable

        @BeanProperty(preferred=true,
                      description="If true, the user can type a new value in the combo box.")
        public void setEditable​(boolean aFlag)
        确定JComboBox字段是否可编辑。 可编辑的JComboBox允许用户键入字段或从列表中选择一个项目来初始化字段,然后可以对其进行编辑。 (编辑仅影响字段,列表项保持不变。)不可编辑的JComboBox在字段中显示所选项目,但无法修改选择。
        参数
        aFlag - 布尔值,其中true表示该字段是可编辑的
      • isEditable

        public boolean isEditable()
        如果JComboBox是可编辑的,则返回true。 默认情况下,组合框不可编辑。
        结果
        如果 JComboBox是可编辑的, JComboBox true,否则为false
      • setMaximumRowCount

        @BeanProperty(preferred=true,
                      description="The maximum number of rows the popup should have")
        public void setMaximumRowCount​(int count)
        设置JComboBox显示的最大行数。 如果模型中的对象数大于count,则组合框使用滚动条。
        参数
        count - 一个整数,指定在使用滚动条之前列表中显示的最大项目数
      • getMaximumRowCount

        public int getMaximumRowCount()
        返回组合框在没有滚动条的情况下可以显示的最大项目数
        结果
        一个整数,指定在使用滚动条之前列表中显示的最大项目数
      • setRenderer

        @BeanProperty(expert=true,
                      description="The renderer that paints the item selected in the list.")
        public void setRenderer​(ListCellRenderer<? super E> aRenderer)
        设置绘制列表项的渲染器和从JComboBox字段中的列表中选择的项。 如果JComboBox不可编辑,则使用渲染器。 如果它是可编辑的,则编辑器用于渲染和编辑所选项目。

        默认渲染器显示字符串或图标。 其他渲染器可以处理图形图像和复合项目。

        要显示所选项目, aRenderer.getListCellRendererComponent调用aRenderer.getListCellRendererComponent ,传递列表对象并将索引设置为-1。

        参数
        aRenderer - 显示所选项目的 ListCellRenderer
        另请参见:
        setEditor(javax.swing.ComboBoxEditor)
      • getRenderer

        public ListCellRenderer<? super E> getRenderer()
        返回用于在 JComboBox字段中显示所选项的渲染器。
        结果
        显示所选项目的 ListCellRenderer
      • setEditor

        @BeanProperty(expert=true,
                      description="The editor that combo box uses to edit the current value")
        public void setEditor​(ComboBoxEditor anEditor)
        设置用于绘制和编辑JComboBox字段中所选项目的编辑器。 仅当接收JComboBox可编辑时才使用编辑器。 如果不可编辑,则组合框使用渲染器绘制选定的项目。
        参数
        anEditor - 显示所选项目的 ComboBoxEditor
        另请参见:
        setRenderer(javax.swing.ListCellRenderer<? super E>)
      • getEditor

        public ComboBoxEditor getEditor()
        返回用于绘制和编辑 JComboBox字段中所 JComboBox的编辑器。
        结果
        ComboBoxEditor显示所选项目
      • setSelectedItem

        @BeanProperty(bound=false,
                      preferred=true,
                      description="Sets the selected item in the JComboBox.")
        public void setSelectedItem​(Object anObject)
        将组合框显示区域中的选定项目设置为参数中的对象。 如果anObject在列表中,显示区域显示anObject选择。

        如果anObject没有 anObject且组合框不可编辑,则不会更改当前选择。 对于可编辑的组合框,选择将更改为anObject

        如果这构成所选项目的更改,则添加到组合框的ItemListener将通过一个或两个ItemEvent进行通知。 如果当前选择的项目,则将触发ItemEvent ,状态更改将为ItemEvent.DESELECTED 如果anObject在列表中并且当前未被选中,则将触发ItemEvent ,状态更改将为ItemEvent.SELECTED

        ActionListener此方法时,添加到组合框的ActionEvent将通过ActionEvent通知。

        参数
        anObject - 要选择的列表对象; 使用null清除选择
      • getSelectedItem

        public Object getSelectedItem()
        返回当前选定的项目。

        如果组合框可编辑,则该值可能没有被添加到组合框addIteminsertItemAt或数据构造。

        结果
        当前选中的对象
        另请参见:
        setSelectedItem(java.lang.Object)
      • setSelectedIndex

        @BeanProperty(bound=false,
                      preferred=true,
                      description="The item at index is selected.")
        public void setSelectedIndex​(int anIndex)
        选择索引 anIndex处的项目。
        参数
        anIndex - 一个整数,指定要选择的列表项,其中0指定列表中的第一项,-1表示没有选择
        异常
        IllegalArgumentException - 如果 anIndex <-1或 anIndex大于或等于size
      • getSelectedIndex

        public int getSelectedIndex()
        返回列表中与给定项匹配的第一项。 如果JComboBox允许选定的项目不在列表中,则不会始终定义结果。 如果没有选定项目或用户指定了不在列表中的项目,则返回-1。
        结果
        指定当前所选列表项的整数,其中0指定列表中的第一项; 如果未选择任何项目,或者当前所选项目不在列表中,则返回-1
      • getPrototypeDisplayValue

        public E getPrototypeDisplayValue()
        返回“原型显示”值 - 用于计算显示高度和宽度的Object。
        结果
        prototypeDisplayValue属性的值
        从以下版本开始:
        1.4
        另请参见:
        setPrototypeDisplayValue(E)
      • setPrototypeDisplayValue

        @BeanProperty(visualUpdate=true,
                      description="The display prototype value, used to compute display width and height.")
        public void setPrototypeDisplayValue​(E prototypeDisplayValue)
        设置用于计算UI部分的显示大小的原型显示值。

        如果指定了原型显示值,则通过使用原型显示值配置渲染器并获取其首选大小来计算组合框的首选大小。 当组合框显示大量数据时,指定首选显示值通常很有用。 如果未指定原型显示值,则必须为模型中的每个值及其获得的首选大小配置渲染器,这可能相对昂贵。

        参数
        prototypeDisplayValue - 原型显示值
        从以下版本开始:
        1.4
        另请参见:
        getPrototypeDisplayValue()
      • addItem

        public void addItem​(E item)
        将项添加到项列表中。 仅当JComboBox使用可变数据模型时,此方法才JComboBox

        警告:如果添加重复的String对象,可能会出现焦点和键盘导航问题。 解决方法是添加新对象而不是String对象,并确保定义了toString()方法。 例如:

          comboBox.addItem(makeObj("Item 1"));
           comboBox.addItem(makeObj("Item 1"));
           ...
           private Object makeObj(final String item)  {
             return new Object() { public String toString() { return item; } };
           } 
        参数
        item - 要添加到列表的项目
        另请参见:
        MutableComboBoxModel
      • insertItemAt

        public void insertItemAt​(E item,
                                 int index)
        将项目插入到给定索引的项目列表中。 仅当JComboBox使用可变数据模型时,此方法才JComboBox
        参数
        item - 要添加到列表中的项目
        index - 一个整数,指定添加项目的位置
        另请参见:
        MutableComboBoxModel
      • removeItem

        public void removeItem​(Object anObject)
        从项目列表中删除项目。 仅当JComboBox使用可变数据模型时,此方法才JComboBox
        参数
        anObject - 要从项列表中删除的对象
        另请参见:
        MutableComboBoxModel
      • removeItemAt

        public void removeItemAt​(int anIndex)
        删除项目 anIndex此方法仅在 JComboBox使用可变数据模型时有效。
        参数
        anIndex - 指定要删除的项的索引的int,其中0表示列表中的第一个项
        另请参见:
        MutableComboBoxModel
      • removeAllItems

        public void removeAllItems()
        从项目列表中删除所有项目。
      • setPopupVisible

        public void setPopupVisible​(boolean v)
        设置弹出窗口的可见性。
        参数
        v - 如果 true显示弹出窗口,否则隐藏弹出窗口。
      • isPopupVisible

        public boolean isPopupVisible()
        确定弹出窗口的可见性。
        结果
        如果弹出窗口可见,则返回true,否则返回false
      • getItemListeners

        @BeanProperty(bound=false)
        public ItemListener[] getItemListeners()
        返回使用addItemListener()添加到此JComboBox的所有 ItemListener的数组。
        结果
        如果没有添加任何侦听器,则添加所有 ItemListener或空数组
        从以下版本开始:
        1.4
      • addActionListener

        public void addActionListener​(ActionListener l)
        添加ActionListener

        选择完成后, ActionListener将收到ActionEvent 如果组合框是可编辑的,则编辑停止时将触发ActionEvent

        参数
        l - 要通知的 ActionListener
        另请参见:
        setSelectedItem(java.lang.Object)
      • removeActionListener

        public void removeActionListener​(ActionListener l)
        删除 ActionListener
        参数
        l - 要删除的 ActionListener
      • getActionListeners

        @BeanProperty(bound=false)
        public ActionListener[] getActionListeners()
        返回使用addActionListener()添加到此JComboBox的所有 ActionListener的数组。
        结果
        添加了所有 ActionListener如果没有添加侦听器,则为空数组
        从以下版本开始:
        1.4
      • addPopupMenuListener

        public void addPopupMenuListener​(PopupMenuListener l)
        添加一个PopupMenu侦听器,它将侦听来自组合框弹出部分的通知消息。

        对于Java附带的所有标准外观,组合框的弹出列表部分实现为JPopupMenu 自定义外观可能无法以这种方式实现,因此不会收到通知。

        参数
        l - 要添加的 PopupMenuListener
        从以下版本开始:
        1.4
      • getPopupMenuListeners

        @BeanProperty(bound=false)
        public PopupMenuListener[] getPopupMenuListeners()
        返回使用addPopupMenuListener()添加到此JComboBox的所有 PopupMenuListener的数组。
        结果
        添加了所有 PopupMenuListener如果没有添加侦听器,则为空数组
        从以下版本开始:
        1.4
      • firePopupMenuWillBecomeVisible

        public void firePopupMenuWillBecomeVisible()
        通知PopupMenuListener s组合框的弹出部分将变为可见。

        此方法是公共的,但不应由UI委托以外的任何其他方法调用。

        从以下版本开始:
        1.4
        另请参见:
        addPopupMenuListener(javax.swing.event.PopupMenuListener)
      • firePopupMenuWillBecomeInvisible

        public void firePopupMenuWillBecomeInvisible()
        通知PopupMenuListener s组合框的弹出部分已变为不可见。

        此方法是公共的,但不应由UI委托以外的任何其他方法调用。

        从以下版本开始:
        1.4
        另请参见:
        addPopupMenuListener(javax.swing.event.PopupMenuListener)
      • firePopupMenuCanceled

        public void firePopupMenuCanceled()
        通知PopupMenuListener s组合框的弹出部分已被取消。

        此方法是公共的,但不应由UI委托以外的任何其他方法调用。

        从以下版本开始:
        1.4
        另请参见:
        addPopupMenuListener(javax.swing.event.PopupMenuListener)
      • setActionCommand

        public void setActionCommand​(String aCommand)
        设置应该包含在发送给动作侦听器的事件中的动作命令。
        参数
        aCommand - 包含发送给动作侦听器的“命令”的字符串; 然后,同一个侦听器可以根据收到的命令执行不同的操作
      • getActionCommand

        public String getActionCommand()
        返回发送给动作侦听器的事件中包含的动作命令。
        结果
        包含发送给动作侦听器的“命令”的字符串。
      • getAction

        public Action getAction()
        返回当前设置的 Action这个 ActionEvent来源,或 null如果没有 Action设置。
        结果
        ActionActionEvent来源; null
        从以下版本开始:
        1.3
        另请参见:
        ActionsetAction(javax.swing.Action)
      • configurePropertiesFromAction

        protected void configurePropertiesFromAction​(Action a)
        设置此组合框的属性以匹配指定的Action中的Action 有关此设置的属性的详细信息,请参阅Swing Components Supporting Action
        参数
        a - 从 Action获取房产,或 null
        从以下版本开始:
        1.3
        另请参见:
        ActionsetAction(javax.swing.Action)
      • createActionPropertyChangeListener

        protected PropertyChangeListener createActionPropertyChangeListener​(Action a)
        创建并返回PropertyChangeListener ,负责监听指定的Action更改并更新相应的属性。

        警告:如果你是子类,则不要创建匿名内部类。 如果你这样做,组合框的寿命将与Action的寿命相关Action

        参数
        a - 组合框的动作
        结果
        PropertyChangeListener
        从以下版本开始:
        1.3
        另请参见:
        ActionsetAction(javax.swing.Action)
      • actionPropertyChanged

        protected void actionPropertyChanged​(Action action,
                                             String propertyName)
        更新组合框的状态以响应相关操作中的属性更改。 PropertyChangeListener返回的createActionPropertyChangeListener调用此方法。 子类通常不需要调用它。 支持其他Action属性的子类应覆盖此属性和configurePropertiesFromAction

        有关此方法设置的属性列表,请参阅Swing Components Supporting Action中的表。

        参数
        action - 与此组合框相关的 Action
        propertyName - 已更改的属性的名称
        从以下版本开始:
        1.6
        另请参见:
        ActionconfigurePropertiesFromAction(javax.swing.Action)
      • fireItemStateChanged

        protected void fireItemStateChanged​(ItemEvent e)
        通知所有已注册对此事件类型的通知感兴趣的听众。
        参数
        e - 感兴趣的事件
        另请参见:
        EventListenerList
      • fireActionEvent

        protected void fireActionEvent()
        通知所有已注册对此事件类型的通知感兴趣的听众。
        另请参见:
        EventListenerList
      • selectedItemChanged

        protected void selectedItemChanged()
        此受保护方法是特定于实现的。 不要直接访问或覆盖。
      • getSelectedObjects

        @BeanProperty(bound=false)
        public Object[] getSelectedObjects()
        返回包含所选项的数组。 实现此方法是为了与ItemSelectable兼容。
        Specified by:
        getSelectedObjects在接口 ItemSelectable
        结果
        包含一个元素的 Objects数组 - 所选项目
      • actionPerformed

        public void actionPerformed​(ActionEvent e)
        该方法作为实现副作用公开。 不要打电话或覆盖。
        Specified by:
        actionPerformed在接口 ActionListener
        参数
        e - 要处理的事件
      • contentsChanged

        public void contentsChanged​(ListDataEvent e)
        该方法作为实现副作用公开。 不要打电话或覆盖。
        Specified by:
        contentsChanged在接口 ListDataListener
        参数
        e - 封装事件信息的 ListDataEvent
      • intervalAdded

        public void intervalAdded​(ListDataEvent e)
        该方法作为实现副作用公开。 不要打电话或覆盖。
        Specified by:
        intervalAdded在接口 ListDataListener
        参数
        e - 封装事件信息的 ListDataEvent
      • intervalRemoved

        public void intervalRemoved​(ListDataEvent e)
        该方法作为实现副作用公开。 不要打电话或覆盖。
        Specified by:
        intervalRemoved在接口 ListDataListener
        参数
        e - 封装事件信息的 ListDataEvent
      • selectWithKeyChar

        public boolean selectWithKeyChar​(char keyChar)
        选择与指定键盘字符对应的列表项,如果有与该字符对应的项,则返回true。 否则,返回false。
        参数
        keyChar - 一个char,通常这是用户键入的键盘键
        结果
        true如果有与该字符对应的项目。 否则,返回false
      • configureEditor

        public void configureEditor​(ComboBoxEditor anEditor,
                                    Object anItem)
        使用指定的项初始化编辑器。
        参数
        anEditor - ComboBoxEditor ,在组合框字段中显示列表项并允许对其进行编辑
        anItem - 要在字段中显示和编辑的对象
      • setKeySelectionManager

        @BeanProperty(bound=false,
                      expert=true,
                      description="The objects that changes the selection when a key is pressed.")
        public void setKeySelectionManager​(JComboBox.KeySelectionManager aManager)
        设置将键盘字符转换为列表选择的对象。 通常,具有匹配的第一个字符的第一个选择成为所选项。
        参数
        aManager - 一名关键选择经理
      • getKeySelectionManager

        public JComboBox.KeySelectionManager getKeySelectionManager()
        返回列表的键选择管理器。
        结果
        KeySelectionManager目前正在使用中
      • getItemCount

        @BeanProperty(bound=false)
        public int getItemCount()
        返回列表中的项目数。
        结果
        一个等于列表中项目数的整数
      • getItemAt

        public E getItemAt​(int index)
        返回指定索引处的列表项。 如果index超出范围(小于零或大于或等于大小),则返回null
        参数
        index - 一个整数,指示列表位置,第一个项目从零开始
        结果
        该列表位置的项目; null如果超出范围
      • paramString

        protected String paramString()
        返回此JComboBox的字符串表示JComboBox 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramStringJComponent
        结果
        JComboBox的字符串表示 JComboBox