java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ComboBoxUI
javax.swing.plaf.basic.BasicComboBoxUI
- 直接已知的子类:
-
MetalComboBoxUI
,SynthComboBoxUI
JComboBox的基本UI实现。
组合框是一个复合组件,这意味着它是许多更简单组件的聚合体。这个类创建并管理组合框和组合框模型上的监听器。这些监听器根据组合框的属性和状态的变化更新用户界面。
所有事件处理都由使用createxxxListener()
方法和内部类创建的监听器类处理。您可以通过覆盖createxxxListener()
方法并提供自己的事件监听器或从此类中提供的监听器子类化来更改此类的行为。
要添加特定操作,请覆盖installKeyboardActions
以响应KeyStroke绑定中添加操作。请参阅文章如何使用键绑定
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
这个布局管理器处理组合框的“标准”布局。class
当焦点丢失时,此监听器隐藏弹出窗口。class
此监听器监视组合框中选择的更改。class
此监听器检查键事件是否不是导航键。class
此监听器监视ComboBoxModel
中的更改。class
此监听器监视组合框中已更改的绑定属性。 -
Field Summary
Modifier and TypeFieldDescriptionprotected JButton
调用弹出窗口的箭头按钮。protected Dimension
缓存的最小首选大小。JComboBox
的实例。protected CellRendererPane
用于呈现组合框中当前选择的项目。protected Component
ComboBoxEditor
用于编辑的组件。protected FocusListener
此受保护字段是特定于实现的。protected boolean
此受保护字段是特定于实现的。protected boolean
重新计算最小首选大小的标志。protected ItemListener
此受保护字段是特定于实现的。protected KeyListener
此受保护字段是特定于实现的。此列表用于绘制组合框中的当前项目。protected ListDataListener
此受保护字段是特定于实现的。protected Insets
如果指定,这些插图在布局和绘制组合框中“选定”项目时充当单元格渲染器周围的填充。protected ComboPopup
用于显示弹出窗口的ComboPopup
的实现。protected KeyListener
KeyListener
监听事件。protected MouseListener
MouseListener
监听事件。protected MouseMotionListener
MouseMotionListener
监听事件。protected PropertyChangeListener
此受保护字段是特定于实现的。protected boolean
指示组合框按钮是否应为正方形。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
此公共方法是特定于实现的,应为私有。void
此公共方法是特定于实现的,应为私有。protected void
此受保护方法是特定于实现的,应为私有。protected JButton
创建一个按钮,该按钮将用作控件以显示或隐藏组合框的弹出部分。protected ComboBoxEditor
创建可编辑组合框中将使用的默认编辑器。protected FocusListener
创建一个将添加到组合框中的FocusListener
。protected ItemListener
创建一个将添加到组合框中的ItemListener
。protected KeyListener
创建一个将添加到组合框中的KeyListener
。protected LayoutManager
为管理组成组合框的组件创建布局管理器。protected ListDataListener
创建一个将添加到ComboBoxModel
中的列表数据监听器。protected ComboPopup
创建组合框的弹出部分。protected PropertyChangeListener
创建一个将添加到组合框中的PropertyChangeListener
。protected ListCellRenderer
<Object> 创建将在不可编辑组合框中使用的默认渲染器。static ComponentUI
构造一个BasicComboBoxUI
的新实例。int
getBaseline
(JComponent c, int width, int height) 返回基线。返回一个枚举,指示组件的基线随着大小变化而变化的方式。protected Dimension
使用当前渲染器和字体返回组合框空显示区域的默认大小。protected Dimension
返回显示区域的计算大小。protected Insets
从JComboBox获取插图。最小大小是显示区域的大小加上插图加上按钮的大小。protected Dimension
getSizeForComponent
(Component comp) 返回如果作为单元格渲染器使用组件的大小。protected void
创建和初始化组成聚合组合框的组件。protected void
将默认颜色、默认字体、默认渲染器和默认编辑器安装到JComboBox中。protected void
向JComboBox添加键盘操作。protected void
为组合框及其模型创建和安装监听器。boolean
isFocusTraversable
(JComboBox<?> c) 确定JComboBox是否可通过焦点遍历。protected boolean
isNavigationKey
(int keyCode) 返回所提供的keyCode是否映射到用于导航的键。boolean
isPopupVisible
(JComboBox<?> c) 告诉弹出窗口是否可见。void
paintCurrentValue
(Graphics g, Rectangle bounds, boolean hasFocus) 绘制当前选择的项目。void
paintCurrentValueBackground
(Graphics g, Rectangle bounds, boolean hasFocus) 绘制当前选择项目的背景。protected Rectangle
返回为绘制当前选择项目保留的区域。void
此公共方法是特定于实现的,应为私有。protected void
选择列表中的下一个项目。protected void
选择列表中的上一个项目。void
setPopupVisible
(JComboBox<?> c, boolean v) 隐藏弹出窗口。protected void
如果弹出窗口可见,则隐藏弹出窗口;如果弹出窗口隐藏,则显示弹出窗口。void
此公共方法是特定于实现的,应为私有。protected void
此受保护方法是特定于实现的,应为私有。protected void
组成组合框的聚合组件已注销和未初始化。protected void
从组合框中卸载默认颜色、默认字体、默认渲染器和默认编辑器。protected void
删除焦点InputMap和ActionMap。protected void
从组合框及其模型中删除安装的监听器。Methods declared in class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getPreferredSize, installUI, paint, uninstallUI, update
-
Field Details
-
comboBox
JComboBox
的实例。 -
hasFocus
protected boolean hasFocus此受保护字段是特定于实现的。请勿直接访问或覆盖。请改为覆盖监听器构造方法。 -
listBox
此列表用于绘制组合框中的当前项目。 -
currentValuePane
用于呈现组合框中当前选择的项目。与弹出窗口的呈现无关。 -
popup
用于显示弹出窗口的ComboPopup
的实现。 -
editor
ComboBoxEditor
用于编辑的组件。 -
arrowButton
调用弹出窗口的箭头按钮。 -
keyListener
此受保护字段是特定于实现的。请勿直接访问或覆盖。请改为覆盖监听器构造方法。- 参见:
-
focusListener
此受保护字段是特定于实现的。请勿直接访问或覆盖。请改为覆盖监听器构造方法。- 参见:
-
propertyChangeListener
此受保护字段是特定于实现的。请勿直接访问或覆盖。请改为覆盖监听器构造方法。- 参见:
-
itemListener
此受保护字段是特定于实现的。请勿直接访问或覆盖。请改为覆盖监听器构造方法。- 参见:
-
popupMouseListener
MouseListener
监听事件。 -
popupMouseMotionListener
MouseMotionListener
监听事件。 -
popupKeyListener
KeyListener
监听事件。 -
listDataListener
此受保护字段是特定于实现的。请勿直接访问或覆盖。请改为覆盖监听器构造方法。- 参见:
-
isMinimumSizeDirty
protected boolean isMinimumSizeDirty重新计算最小首选大小的标志。 -
cachedMinimumSize
缓存的最小首选大小。 -
squareButton
protected boolean squareButton指示组合框按钮是否应为正方形。如果是正方形,则宽度和高度相等,并且都设置为组合框的高度减去适当的插图。- 自从:
- 1.7
-
padding
如果指定,这些插图在布局和绘制组合框中“选定”项目时充当单元格渲染器周围的填充。这些插图添加到单元格渲染器指定的插图中。- 自从:
- 1.7
-
-
Constructor Details
-
BasicComboBoxUI
public BasicComboBoxUI()构造一个BasicComboBoxUI
。
-
-
Method Details
-
createUI
构造一个BasicComboBoxUI
的新实例。- 参数:
-
c
- 一个组件 - 返回:
-
BasicComboBoxUI
的新实例
-
installDefaults
protected void installDefaults()将默认颜色、默认字体、默认渲染器和默认编辑器安装到JComboBox中。 -
installListeners
protected void installListeners()为组合框及其模型创建和安装监听器。在安装UI时调用此方法。 -
uninstallDefaults
protected void uninstallDefaults()从组合框中卸载默认颜色、默认字体、默认渲染器和默认编辑器。 -
uninstallListeners
protected void uninstallListeners()从组合框及其模型中移除已安装的侦听器。此方法中移除的侦听器的数量和类型应与在installListeners
中添加的相同。 -
createPopup
创建组合框的弹出部分。- 返回:
-
一个
ComboPopup
的实例 - 参见:
-
createKeyListener
创建一个将添加到组合框的KeyListener
。如果此方法返回null,则不会将其添加到组合框中。- 返回:
-
一个
KeyListener
的实例或null
-
createFocusListener
创建一个将添加到组合框的FocusListener
。如果此方法返回null,则不会将其添加到组合框中。- 返回:
-
一个
FocusListener
的实例或null
-
createListDataListener
创建一个将添加到ComboBoxModel
的列表数据侦听器。如果此方法返回null,则不会将其添加到组合框模型中。- 返回:
-
一个
ListDataListener
的实例或null
-
createItemListener
创建一个将添加到组合框的ItemListener
。如果此方法返回null,则不会将其添加到组合框中。子类可以重写此方法以返回其自己的ItemEvent处理程序的实例。
- 返回:
-
一个
ItemListener
的实例或null
-
createPropertyChangeListener
创建一个将添加到组合框的PropertyChangeListener
。如果此方法返回null,则不会将其添加到组合框中。- 返回:
-
一个
PropertyChangeListener
的实例或null
-
createLayoutManager
为管理组成组合框的组件创建一个布局管理器。- 返回:
- 一个布局管理器的实例
-
createRenderer
创建将在不可编辑组合框中使用的默认渲染器。仅当未使用setRenderer
显式设置渲染器时,才会使用默认渲染器。- 返回:
-
用于组合框的
ListCellRender
- 参见:
-
createEditor
创建将在可编辑组合框中使用的默认编辑器。仅当未使用setEditor
显式设置编辑器时,才会使用默认编辑器。- 返回:
-
用于组合框的
ComboBoxEditor
- 参见:
-
installComponents
protected void installComponents()创建并初始化组成组合框的聚合组件。此方法作为UI安装过程的一部分调用。 -
uninstallComponents
protected void uninstallComponents()组成组合框的聚合组件将被注销并未初始化。此方法作为UI卸载过程的一部分调用。 -
addEditor
public void addEditor()此公共方法是特定于实现的,应为私有。不要调用或覆盖。要实现特定的编辑器,请创建自定义ComboBoxEditor
。- 参见:
-
removeEditor
public void removeEditor()此公共方法是特定于实现的,应为私有。不要调用或覆盖。- 参见:
-
configureEditor
protected void configureEditor()此受保护方法是特定于实现的,应为私有。不要调用或覆盖。- 参见:
-
unconfigureEditor
protected void unconfigureEditor()此受保护方法是特定于实现的,应为私有。不要调用或覆盖。- 参见:
-
configureArrowButton
public void configureArrowButton()此公共方法是特定于实现的,应为私有。不要调用或覆盖。- 参见:
-
unconfigureArrowButton
public void unconfigureArrowButton()此公共方法是特定于实现的,应为私有。不要调用或覆盖。- 参见:
-
createArrowButton
创建一个按钮,该按钮将用作控制显示或隐藏组合框的弹出部分。- 返回:
- 代表弹出控件的按钮
-
isPopupVisible
指示弹出窗口是否可见。- 指定者:
-
isPopupVisible
在类ComboBoxUI
中 - 参数:
-
c
- 一个JComboBox
- 返回:
-
如果
JComboBox
的弹出窗口可见,则为true
-
setPopupVisible
隐藏弹出窗口。- 指定者:
-
setPopupVisible
在类ComboBoxUI
中 - 参数:
-
c
- 一个JComboBox
-
v
- 一个boolean
,确定弹出窗口的可见性
-
isFocusTraversable
确定JComboBox是否可聚焦。如果JComboBox是可编辑的,则返回false,否则返回true。- 指定者:
-
isFocusTraversable
在类ComboBoxUI
中 - 参数:
-
c
- 一个JComboBox
- 返回:
-
如果给定的
JComboBox
可聚焦,则为true
-
getMinimumSize
最小尺寸是显示区域加上插图加上按钮的尺寸。- 覆盖:
-
getMinimumSize
在类ComponentUI
中 - 参数:
-
c
- 正在查询其最小尺寸的组件;此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可能会被使用 - 返回:
-
一个
Dimension
对象或null
- 参见:
-
getBaseline
返回基线。- 覆盖:
-
getBaseline
在类ComponentUI
中 - 参数:
-
c
- 请求基线的JComponent
-
width
- 获取基线的宽度 -
height
- 获取基线的高度 - 返回:
- 基线或值< 0,表示没有合理的基线
- 抛出:
-
NullPointerException
- 如果c
为null
-
IllegalArgumentException
- 如果宽度或高度< 0 - 自:
- 1.6
- 参见:
-
getBaselineResizeBehavior
返回一个枚举,指示组件的基线随尺寸变化而变化的方式。- 覆盖:
-
getBaselineResizeBehavior
在类ComponentUI
中 - 参数:
-
c
- 要返回基线调整行为的JComponent
- 返回:
- 一个枚举,指示组件大小变化时基线如何变化
- 抛出:
-
NullPointerException
- 如果c
为null
- 自:
- 1.6
- 参见:
-
selectNextPossibleValue
protected void selectNextPossibleValue()选择列表中的下一个项目。如果当前选择的项目已经是最后一个项目,则不会更改选择。 -
selectPreviousPossibleValue
protected void selectPreviousPossibleValue()选择列表中的上一个项目。如果当前选择的项目已经是第一个项目,则不会更改选择。 -
toggleOpenClose
protected void toggleOpenClose()如果弹出窗口正在显示,则隐藏弹出窗口;如果弹出窗口已隐藏,则显示弹出窗口。 -
rectangleForCurrentValue
返回为绘制当前选择项目而保留的区域。- 返回:
- 为绘制当前选择项目而保留的区域
-
getInsets
获取 JComboBox 中的插图。- 返回:
- 插图
-
paintCurrentValue
绘制当前选择项目。- 参数:
-
g
-Graphics
的一个实例 -
bounds
- 要渲染到的边界矩形 -
hasFocus
- 是否聚焦
-
paintCurrentValueBackground
绘制当前选择项目的背景。- 参数:
-
g
-Graphics
的一个实例 -
bounds
- 要渲染到的边界矩形 -
hasFocus
- 是否聚焦
-
getDefaultSize
使用当前渲染器和字体返回组合框的空显示区域的默认大小。- 返回:
- 空显示区域的大小
- 参见:
-
getDisplaySize
返回计算的显示区域大小。显示区域是组合框中显示所选项目的部分。如果已设置原型显示值,此方法将使用原型显示值。对于具有非常多项目的组合框,建议使用原型显示值以显著加快显示大小计算速度。
- 返回:
- 从组合框项目计算的显示区域大小
- 参见:
-
getSizeForComponent
返回作为单元格渲染器时组件的大小。- 参数:
-
comp
- 要检查的Component
- 返回:
- 组件的大小
- 自 1.7 起:
- 1.7
-
installKeyboardActions
protected void installKeyboardActions()向 JComboBox 添加键盘操作。回车和 esc 上的操作已经提供。根据需要添加更多操作。 -
uninstallKeyboardActions
protected void uninstallKeyboardActions()移除焦点 InputMap 和 ActionMap。
-