java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ComboBoxUI
javax.swing.plaf.basic.BasicComboBoxUI
- 已知子类:
MetalComboBoxUI,SynthComboBoxUI
JComboBox 的基本 UI 实现。
组合框是一个复合组件,这意味着它是许多简单组件的集合。此类创建和管理组合框和组合框模型上的监听。这些监听更新用户界面以响应组合框的属性和状态的变化。
所有事件处理都由使用createxxxListener() 方法和内部类创建的监听器类处理。您可以通过覆盖 createxxxListener() 方法并提供您自己的事件监听器或从此类中提供的事件监听器进行子类化来更改此类的行为。
要添加特定操作,请覆盖 installKeyboardActions 以添加响应 KeyStroke 绑定的操作。见文章如何使用键绑定
-
内部类总结
内部类修饰符和类型类描述class这个布局管理器处理组合框的“标准”布局。class当焦点丢失时,此监听会隐藏弹出窗口。class该监听监视组合框中选择的更改。class此监听检查键事件是否不是导航键。class该监听器监视ComboBoxModel中的变化。class此监听监视组合框中已更改的绑定属性。 -
字段摘要
字段修饰符和类型Field描述protected JButton调用弹出窗口的箭头按钮。protected Dimension缓存的最小首选大小。JComboBox的实例。protected CellRendererPane用于呈现组合框中当前选定的项目。protected ComponentComboBoxEditor用于编辑的组件。protected FocusListener该受保护字段是特定于实现的。protected boolean该受保护字段是特定于实现的。protected boolean重新计算最小首选大小的标志。protected ItemListener该受保护字段是特定于实现的。protected KeyListener该受保护字段是特定于实现的。此list用于绘制组合框中的当前项。protected ListDataListener该受保护字段是特定于实现的。protected Insets如果指定,这些insets在布局和绘制组合框中的“选定”项目时充当单元格渲染器周围的填充。protected ComboPopup用于显示弹出窗口的ComboPopup的实现。protected KeyListenerKeyListener监听事件。protected MouseListenerMouseListener监听事件。protected MouseMotionListenerMouseMotionListener监听事件。protected PropertyChangeListener该受保护字段是特定于实现的。protected boolean指示组合框按钮是否应为方形。 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述void此公共方法是特定于实现的,应该是私有的。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新实例intgetBaseline(JComponent c, int width, int height) 返回基线。返回一个枚举,指示组件的基线如何随着大小的变化而变化。protected Dimension使用当前渲染器和字体返回组合框空白显示区域的默认大小。protected Dimension返回显示区域的计算大小。protected Insets从 JComboBox 获取insets。最小尺寸是显示区域加上insets加上按钮的尺寸。protected DimensiongetSizeForComponent(Component comp) 返回组件用作单元格渲染器时的大小。protected void创建并初始化组成聚合组合框的组件。protected void将默认颜色、默认字体、默认渲染器和默认编辑器安装到 JComboBox 中。protected void将键盘操作添加到 JComboBox。protected void为组合框及其模型创建并安装监听。booleanisFocusTraversable(JComboBox<?> c) 确定 JComboBox 是否可遍历焦点。protected booleanisNavigationKey(int keyCode) 返回提供的 keyCode 是否映射到用于导航的键。booleanisPopupVisible(JComboBox<?> c) 判断弹出窗口是否可见。voidpaintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus) 绘制当前选定的项目。voidpaintCurrentValueBackground(Graphics g, Rectangle bounds, boolean hasFocus) 绘制当前所选项目的背景。protected Rectangle返回为绘制当前所选项目保留的区域。void此公共方法是特定于实现的,应该是私有的。protected void选择列表中的下一项。protected void选择列表中的前一项。voidsetPopupVisible(JComboBox<?> c, boolean v) 隐藏弹出窗口。protected void如果弹出窗口显示则隐藏弹出窗口,如果弹出窗口隐藏则显示弹出窗口。void此公共方法是特定于实现的,应该是私有的。protected void这个受保护的方法是特定于实现的,应该是私有的。protected void组成组合框的聚合组件未注册且未初始化。protected void从组合框中卸载默认颜色、默认字体、默认渲染器和默认编辑器。protected void移除焦点 InputMap 和 ActionMap。protected void从组合框及其模型中删除已安装的监听。在类 javax.swing.plaf.ComponentUI 中声明的方法
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getPreferredSize, installUI, paint, uninstallUI, update
-
字段详细信息
-
comboBox
JComboBox的实例。 -
hasFocus
protected boolean hasFocus该受保护字段是特定于实现的。不要直接访问或重写。 -
listBox
此list用于绘制组合框中的当前项。 -
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指示组合框按钮是否应为方形。如果是正方形,则宽度和高度相等,并且都设置为组合的高度减去适当的insets。- 自从:
- 1.7
-
padding
如果指定,这些insets在布局和绘制组合框中的“选定”项目时充当单元格渲染器周围的填充。这些insets添加到单元格渲染器指定的insets中。- 自从:
- 1.7
-
-
构造方法详细信息
-
BasicComboBoxUI
public BasicComboBoxUI()构造一个BasicComboBoxUI
-
-
方法详情
-
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的弹出窗口可见,则为真
-
setPopupVisible
隐藏弹出窗口。- 指定者:
setPopupVisible在类ComboBoxUI中- 参数:
c- 一个JComboBoxv- 一个boolean确定弹出窗口的可见性
-
isFocusTraversable
确定 JComboBox 是否可遍历焦点。如果 JComboBox 是可编辑的,则返回 false,否则返回 true。- 指定者:
isFocusTraversable在类ComboBoxUI中- 参数:
c- 一个JComboBox- 返回:
-
如果给定的
JComboBox是可遍历的,则为真
-
getMinimumSize
最小尺寸是显示区域加上insets加上按钮的尺寸。- 重写:
getMinimumSize在类ComponentUI中- 参数:
c- 正在查询最小尺寸的组件;这个参数经常被忽略,但如果 UI 对象是无状态的并且由多个组件共享,则可能会被使用- 返回:
Dimension对象或null- 参见:
-
getBaseline
返回基线。- 重写:
getBaseline在类ComponentUI中- 参数:
c-JComponent正在请求基线width- 获取基线的宽度height- 获取基线的高度- 返回:
- 基线或值 < 0 表示没有合理的基线
- 抛出:
NullPointerException- 如果c是nullIllegalArgumentException- 如果宽度或高度 < 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 获取insets。- 返回:
- insets
-
paintCurrentValue
绘制当前选定的项目。- 参数:
g-Graphics的实例bounds- 要渲染到的边界矩形hasFocus- 专注
-
paintCurrentValueBackground
绘制当前所选项目的背景。- 参数:
g-Graphics的实例bounds- 要渲染到的边界矩形hasFocus- 专注
-
getDefaultSize
使用当前渲染器和字体返回组合框空白显示区域的默认大小。- 返回:
- 空白显示区域的大小
- 参见:
-
getDisplaySize
返回显示区域的计算大小。显示区域是显示所选项目的组合框部分。如果已设置,此方法将使用原型显示值。对于具有大量项目的组合框,建议使用原型显示值以显着加快显示大小计算。
- 返回:
- 根据组合框项目计算的显示区域的大小
- 参见:
-
getSizeForComponent
返回组件用作单元格渲染器时的大小。- 参数:
comp- 一个Component检查- 返回:
- 组件的大小
- 自从:
- 1.7
-
installKeyboardActions
protected void installKeyboardActions()将键盘操作添加到 JComboBox。已经提供了对 enter 和 esc 的操作。根据需要添加更多操作。 -
uninstallKeyboardActions
protected void uninstallKeyboardActions()移除焦点 InputMap 和 ActionMap。
-