- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JComboBox<E>
-
- 参数类型
-
E
- 此组合框的元素类型
- 实现的所有接口
-
ActionListener
,ImageObserver
,ItemSelectable
,MenuContainer
,Serializable
,EventListener
,Accessible
,ListDataListener
@JavaBean(defaultProperty="UI", description="A combination of a text field and a drop-down list.") public class JComboBox<E> extends JComponent implements ItemSelectable, ListDataListener, ActionListener, Accessible
组合按钮或可编辑字段和下拉列表的组件。 用户可以从下拉列表中选择一个值,该列表出现在用户的请求中。 如果您使组合框可编辑,则组合框包含一个可编辑字段,用户可以在其中键入值。警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。有关详细信息,请参阅The Java Tutorial中的How to Use Combo Boxes 。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ComboBoxModel
,DefaultComboBoxModel
, Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected class
JComboBox.AccessibleJComboBox
此类实现JComboBox
类的可访问性支持。static interface
JComboBox.KeySelectionManager
定义KeySelectionManager
的接口。-
嵌套类/接口声明在类 javax.swing.JComponent
JComponent.AccessibleJComponent
-
嵌套类/接口声明在类 java.awt.Container
Container.AccessibleAWTContainer
-
-
字段汇总
字段 变量和类型 字段 描述 protected String
actionCommand
此受保护字段是特定于实现的。protected ComboBoxModel<E>
dataModel
此受保护字段是特定于实现的。protected ComboBoxEditor
editor
此受保护字段是特定于实现的。protected boolean
isEditable
此受保护字段是特定于实现的。protected JComboBox.KeySelectionManager
keySelectionManager
此受保护字段是特定于实现的。protected boolean
lightWeightPopupEnabled
此受保护字段是特定于实现的。protected int
maximumRowCount
此受保护字段是特定于实现的。protected ListCellRenderer<? super E>
renderer
此受保护字段是特定于实现的。protected Object
selectedItemReminder
此受保护字段是特定于实现的。-
声明的属性在类 javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
声明的属性在类 java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
actionPerformed(ActionEvent e)
该方法作为实现副作用公开。protected void
actionPropertyChanged(Action action, String propertyName)
更新组合框的状态以响应相关操作中的属性更改。void
addActionListener(ActionListener l)
添加ActionListener
。void
addItem(E item)
将项添加到项列表中。void
addItemListener(ItemListener aListener)
添加ItemListener
。void
addPopupMenuListener(PopupMenuListener l)
添加一个PopupMenu
监听器,它将侦听来自组合框弹出部分的通知消息。void
configureEditor(ComboBoxEditor anEditor, Object anItem)
使用指定的项初始化编辑器。protected void
configurePropertiesFromAction(Action a)
设置此组合框的属性以匹配指定的Action
中的Action
。void
contentsChanged(ListDataEvent e)
该方法作为实现副作用公开。protected PropertyChangeListener
createActionPropertyChangeListener(Action a)
创建并返回PropertyChangeListener
,负责监听指定Action
更改并更新相应的属性。protected JComboBox.KeySelectionManager
createDefaultKeySelectionManager()
返回默认键选择管理器的实例。protected void
fireActionEvent()
通知所有已注册对此事件类型的通知感兴趣的听众。protected void
fireItemStateChanged(ItemEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。void
firePopupMenuCanceled()
通知PopupMenuListener
s组合框的弹出部分已被取消。void
firePopupMenuWillBecomeInvisible()
通知PopupMenuListener
s组合框的弹出部分已变为不可见。void
firePopupMenuWillBecomeVisible()
通知PopupMenuListener
s组合框的弹出部分将变为可见。AccessibleContext
getAccessibleContext()
获取与此JComboBox关联的AccessibleContext。Action
getAction()
返回当前设置的Action
这个ActionEvent
来源,或null
如果没有Action
设置。String
getActionCommand()
返回发送给动作侦听器的事件中包含的动作命令。ActionListener[]
getActionListeners()
返回使用addActionListener()添加到此JComboBox的所有ActionListener
的数组。ComboBoxEditor
getEditor()
返回用于绘制和编辑JComboBox
字段中所选项目的编辑器。E
getItemAt(int index)
返回指定索引处的列表项。int
getItemCount()
返回列表中的项目数。ItemListener[]
getItemListeners()
返回使用addItemListener()添加到此JComboBox的所有ItemListener
的数组。JComboBox.KeySelectionManager
getKeySelectionManager()
返回列表的键选择管理器。int
getMaximumRowCount()
返回组合框在没有滚动条的情况下可以显示的最大项目数ComboBoxModel<E>
getModel()
返回JComboBox
当前使用的数据模型。PopupMenuListener[]
getPopupMenuListeners()
返回使用addPopupMenuListener()添加到此JComboBox的所有PopupMenuListener
的数组。E
getPrototypeDisplayValue()
返回“原型显示”值 - 用于计算显示高度和宽度的Object。ListCellRenderer<? super E>
getRenderer()
返回用于在JComboBox
字段中显示所选项目的渲染器。int
getSelectedIndex()
返回列表中与给定项匹配的第一项。Object
getSelectedItem()
返回当前选定的项目。Object[]
getSelectedObjects()
返回包含所选项的数组。ComboBoxUI
getUI()
返回呈现此组件的L&F对象。String
getUIClassID()
返回呈现此组件的L&F类的名称。void
hidePopup()
使组合框关闭其弹出窗口。void
insertItemAt(E item, int index)
将项目插入到给定索引的项目列表中。protected void
installAncestorListener()
注册祖先听众,以便当它或其任何祖先移动或变得可见或不可见时,它将收到AncestorEvents
。void
intervalAdded(ListDataEvent e)
该方法作为实现副作用公开。void
intervalRemoved(ListDataEvent e)
该方法作为实现副作用公开。boolean
isEditable()
如果JComboBox
是可编辑的,则返回true。boolean
isLightWeightPopupEnabled()
获取lightWeightPopupEnabled
属性的值。boolean
isPopupVisible()
确定弹出窗口的可见性。protected String
paramString()
返回此JComboBox
的字符串表示JComboBox
。void
processKeyEvent(KeyEvent e)
处理KeyEvent
s,寻找Tab键。void
removeActionListener(ActionListener l)
删除ActionListener
。void
removeAllItems()
从项目列表中删除所有项目。void
removeItem(Object anObject)
从项目列表中删除项目。void
removeItemAt(int anIndex)
删除项目anIndex
此方法仅在JComboBox
使用可变数据模型时有效。void
removeItemListener(ItemListener aListener)
删除ItemListener
。void
removePopupMenuListener(PopupMenuListener l)
删除PopupMenuListener
。protected void
selectedItemChanged()
此受保护方法是特定于实现的。boolean
selectWithKeyChar(char keyChar)
选择与指定键盘字符对应的列表项,如果有与该字符对应的项,则返回true。void
setAction(Action a)
设置Action
为ActionEvent
源。void
setActionCommand(String aCommand)
设置应该包含在发送给动作侦听器的事件中的动作命令。void
setEditable(boolean aFlag)
确定JComboBox
字段是否可编辑。void
setEditor(ComboBoxEditor anEditor)
设置用于绘制和编辑JComboBox
字段中所选项目的编辑器。void
setEnabled(boolean b)
启用组合框以便可以选择项目。void
setKeySelectionManager(JComboBox.KeySelectionManager aManager)
设置将键盘字符转换为列表选择的对象。void
setLightWeightPopupEnabled(boolean aFlag)
设置lightWeightPopupEnabled
属性,提供关于是否应使用轻量级Component
来包含JComboBox
,而不是重量级Component
,如Panel
或Window
。void
setMaximumRowCount(int count)
设置JComboBox
显示的最大行数。void
setModel(ComboBoxModel<E> aModel)
设置JComboBox
用于获取项目列表的数据模型。void
setPopupVisible(boolean v)
设置弹出窗口的可见性。void
setPrototypeDisplayValue(E prototypeDisplayValue)
设置用于计算UI部分的显示大小的原型显示值。void
setRenderer(ListCellRenderer<? super E> aRenderer)
设置绘制列表项的渲染器和从JComboBox字段中的列表中选择的项。void
setSelectedIndex(int anIndex)
选择索引号为anIndex
的项目。void
setSelectedItem(Object anObject)
将组合框显示区域中的选定项目设置为参数中的对象。void
setUI(ComboBoxUI ui)
设置呈现此组件的L&F对象。void
showPopup()
使组合框显示其弹出窗口。void
updateUI()
将UI属性重置为当前外观的值。-
声明方法的类 javax.swing.JComponent
addAncestorListener, 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, paintBorder, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
声明方法的类 java.awt.Container
add, 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, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
声明方法的类 java.awt.Component
action, 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, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, 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, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
字段详细信息
-
dataModel
protected ComboBoxModel<E> dataModel
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。
-
renderer
protected ListCellRenderer<? super E> renderer
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。
-
editor
protected ComboBoxEditor editor
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。
-
maximumRowCount
protected int maximumRowCount
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。
-
isEditable
protected boolean isEditable
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。- 另请参见:
-
isEditable
,setEditable(boolean)
-
keySelectionManager
protected JComboBox.KeySelectionManager keySelectionManager
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。
-
actionCommand
protected String actionCommand
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。
-
lightWeightPopupEnabled
protected boolean lightWeightPopupEnabled
此受保护字段是特定于实现的。 不要直接访问或覆盖。 请改用访问器方法。
-
selectedItemReminder
protected Object selectedItemReminder
此受保护字段是特定于实现的。 不要直接访问或覆盖。
-
-
构造方法详细信息
-
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
。 当从包含层次结构中添加或删除组件或其祖先时,也会发送事件。
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(ComboBoxUI ui)
设置呈现此组件的L&F对象。- 参数
-
ui
-ComboBoxUI
L&F对象 - 另请参见:
-
UIDefaults.getUI(javax.swing.JComponent)
-
updateUI
public void updateUI()
将UI属性重置为当前外观的值。- 重写:
-
updateUI
类JComponent
- 另请参见:
-
JComponent.updateUI()
-
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
返回呈现此组件的L&F类的名称。- 重写:
-
getUIClassID
类JComponent
- 结果
- 字符串“ComboBoxUI”
- 另请参见:
-
JComponent.getUIClassID()
,UIDefaults.getUI(javax.swing.JComponent)
-
getUI
public ComboBoxUI getUI()
返回呈现此组件的L&F对象。- 重写:
-
getUI
类JComponent
- 结果
- 呈现此组件的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
,如Panel
或Window
。 轻量级与重量级的决定最终取决于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()
返回当前选定的项目。如果组合框可编辑,则该值可能没有被添加到组合框
addItem
,insertItemAt
或数据构造。- 结果
- 当前选中的对象
- 另请参见:
-
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()
从项目列表中删除所有项目。
-
showPopup
public void showPopup()
使组合框显示其弹出窗口。- 另请参见:
-
setPopupVisible(boolean)
-
hidePopup
public void hidePopup()
使组合框关闭其弹出窗口。- 另请参见:
-
setPopupVisible(boolean)
-
setPopupVisible
public void setPopupVisible(boolean v)
设置弹出窗口的可见性。- 参数
-
v
- 如果true
显示弹出窗口,否则隐藏弹出窗口。
-
isPopupVisible
public boolean isPopupVisible()
确定弹出窗口的可见性。- 结果
- 如果弹出窗口可见,则返回true,否则返回false
-
addItemListener
public void addItemListener(ItemListener aListener)
添加ItemListener
。当所选项目发生变化时,
aListener
将收到一个或两个ItemEvent
。- Specified by:
-
addItemListener
在接口ItemSelectable
- 参数
-
aListener
- 要通知的ItemListener
- 另请参见:
-
setSelectedItem(java.lang.Object)
-
removeItemListener
public void removeItemListener(ItemListener aListener)
删除ItemListener
。- Specified by:
-
removeItemListener
在接口ItemSelectable
- 参数
-
aListener
- 要删除的ItemListener
- 另请参见:
-
ItemEvent
-
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
-
removePopupMenuListener
public void removePopupMenuListener(PopupMenuListener l)
删除PopupMenuListener
。- 参数
-
l
- 要删除的PopupMenuListener
- 从以下版本开始:
- 1.4
- 另请参见:
-
addPopupMenuListener(javax.swing.event.PopupMenuListener)
-
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()
返回发送给动作侦听器的事件中包含的动作命令。- 结果
- 包含发送给动作侦听器的“命令”的字符串。
-
setAction
@BeanProperty(visualUpdate=true, description="the Action instance connected with this ActionEvent source") public void setAction(Action a)
设置Action
为ActionEvent
源。 新的Action
取代之前设置的任何Action
但不影响ActionListeners
独立添加addActionListener
。 如果Action
已经是一个注册ActionListener
为ActionEvent
源,它不需要重新注册。设置
Action
结果立即改变中描述的所有属性Swing Components SupportingAction
。 随后,随着Action
属性的更改,组合框的属性会自动更新。此方法使用其他三种方法来设置和帮助跟踪
Action
的属性值。 它使用configurePropertiesFromAction
方法立即更改组合框的属性。 要跟踪Action
属性值中的更改,此方法将注册PropertyChangeListener
返回的createActionPropertyChangeListener
。 默认PropertyChangeListener
调用actionPropertyChanged
方法时的属性Action
变化。- 参数
-
a
-Action
的JComboBox
或null
。 - 从以下版本开始:
- 1.3
- 另请参见:
-
Action
,getAction()
,configurePropertiesFromAction(javax.swing.Action)
,createActionPropertyChangeListener(javax.swing.Action)
,actionPropertyChanged(javax.swing.Action, java.lang.String)
-
getAction
public Action getAction()
返回当前设置的Action
这个ActionEvent
来源,或null
如果没有Action
设置。- 结果
-
Action
为ActionEvent
来源; 或null
- 从以下版本开始:
- 1.3
- 另请参见:
-
Action
,setAction(javax.swing.Action)
-
configurePropertiesFromAction
protected void configurePropertiesFromAction(Action a)
设置此组合框的属性以匹配指定的Action
中的Action
。 有关此设置的属性的详细信息,请参阅Swing Components SupportingAction
。- 参数
-
a
- 从Action
获取房产,或null
- 从以下版本开始:
- 1.3
- 另请参见:
-
Action
,setAction(javax.swing.Action)
-
createActionPropertyChangeListener
protected PropertyChangeListener createActionPropertyChangeListener(Action a)
创建并返回PropertyChangeListener
,负责监听指定的Action
更改并更新相应的属性。警告:如果你是子类,则不要创建匿名内部类。 如果你这样做,组合框的寿命将与
Action
的寿命相关Action
。- 参数
-
a
- 组合框的动作 - 结果
-
PropertyChangeListener
- 从以下版本开始:
- 1.3
- 另请参见:
-
Action
,setAction(javax.swing.Action)
-
actionPropertyChanged
protected void actionPropertyChanged(Action action, String propertyName)
更新组合框的状态以响应相关操作中的属性更改。 从PropertyChangeListener
返回的createActionPropertyChangeListener
调用此方法。 子类通常不需要调用它。 支持其他Action
属性的子类应覆盖此属性和configurePropertiesFromAction
。有关此方法设置的属性列表,请参阅Swing Components Supporting
Action
中的表。- 参数
-
action
- 与此组合框相关的Action
-
propertyName
- 已更改的属性的名称 - 从以下版本开始:
- 1.6
- 另请参见:
-
Action
,configurePropertiesFromAction(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
。
-
setEnabled
@BeanProperty(preferred=true, description="The enabled state of the component.") public void setEnabled(boolean b)
启用组合框以便可以选择项目。 禁用组合框时,无法选择项目,并且无法在其字段中键入值(如果可编辑)。- 重写:
-
setEnabled
在类JComponent
- 参数
-
b
- 一个布尔值,其中true表示组件,false表示禁用它 - 另请参见:
-
Component.isEnabled()
,Component.isLightweight()
-
configureEditor
public void configureEditor(ComboBoxEditor anEditor, Object anItem)
使用指定的项初始化编辑器。- 参数
-
anEditor
-ComboBoxEditor
,在组合框字段中显示列表项并允许对其进行编辑 -
anItem
- 要在字段中显示和编辑的对象
-
processKeyEvent
public void processKeyEvent(KeyEvent e)
处理KeyEvent
s,寻找Tab键。 如果找到Tab键,则关闭弹出窗口。- 重写:
-
processKeyEvent
类JComponent
- 参数
-
e
- 包含已按下的键盘键的KeyEvent
- 另请参见:
-
KeyEvent
,KeyListener
,KeyboardFocusManager
,DefaultKeyboardFocusManager
,Component.processEvent(java.awt.AWTEvent)
,Component.dispatchEvent(java.awt.AWTEvent)
,Component.addKeyListener(java.awt.event.KeyListener)
,Component.enableEvents(long)
,Component.isShowing()
-
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
如果超出范围
-
createDefaultKeySelectionManager
protected JComboBox.KeySelectionManager createDefaultKeySelectionManager()
返回默认键选择管理器的实例。- 结果
-
目前使用的
KeySelectionManager
列表 - 另请参见:
-
setKeySelectionManager(javax.swing.JComboBox.KeySelectionManager)
-
paramString
protected String paramString()
返回此JComboBox
的字符串表示JComboBox
。 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。- 重写:
-
paramString
类JComponent
- 结果
-
此
JComboBox
的字符串表示JComboBox
-
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
获取与此JComboBox关联的AccessibleContext。 对于组合框,AccessibleContext采用AccessibleJComboBox的形式。 如有必要,将创建一个新的AccessibleJComboBox实例。- Specified by:
-
getAccessibleContext
在接口Accessible
- 重写:
-
getAccessibleContext
类Component
- 结果
- 一个AccessibleJComboBox,用作此JComboBox的AccessibleContext
-
-