|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.swing.plaf.ComponentUI javax.swing.plaf.ComboBoxUI javax.swing.plaf.basic.BasicComboBoxUI
public class BasicComboBoxUI
JComboBox 的基本 UI 实现。
组合框是一个组合组件,这意味着它是很多简单组件的聚合。此类创建和管理组合框上的侦听器和组合框模型。这些侦听器更新用户界面以响应组合框的属性和状态的更改。
所有事件处理都是由利用 createxxxListener()
方法和内部类创建的侦听器类处理的。通过重写 createxxxListener()
方法,并提供自己的事件侦听器或为此类提供的事件侦听器创建子类,可以更改此类的行为。
为了添加特殊动作,需要重写 installKeyboardActions
来添加响应 KeyStroke 绑定的动作。请参见 The Swing Connection 中的文章 Keyboard Bindings in Swing。
嵌套类摘要 | |
---|---|
class |
BasicComboBoxUI.ComboBoxLayoutManager
此布局管理器处理组合框的“标准”布局。 |
class |
BasicComboBoxUI.FocusHandler
失去焦点时,此侦听器将隐藏弹出部分。 |
class |
BasicComboBoxUI.ItemHandler
此侦听器观察组合框中选择的更改。 |
class |
BasicComboBoxUI.KeyHandler
此侦听器检查键事件是否不是导航键。 |
class |
BasicComboBoxUI.ListDataHandler
此侦听器观察 ComboBoxModel 中的更改。 |
class |
BasicComboBoxUI.PropertyChangeHandler
此侦听器观察在组合框中发生更改的绑定 (bound) 属性。 |
字段摘要 | |
---|---|
protected JButton |
arrowButton
|
protected Dimension |
cachedMinimumSize
|
protected JComboBox |
comboBox
|
protected CellRendererPane |
currentValuePane
|
protected Component |
editor
|
protected FocusListener |
focusListener
此受保护字段是特定于实现的。 |
protected boolean |
hasFocus
此受保护字段是特定于实现的。 |
protected boolean |
isMinimumSizeDirty
|
protected ItemListener |
itemListener
此受保护字段是特定于实现的。 |
protected KeyListener |
keyListener
此受保护字段是特定于实现的。 |
protected JList |
listBox
|
protected ListDataListener |
listDataListener
此受保护字段是特定于实现的。 |
protected ComboPopup |
popup
|
protected KeyListener |
popupKeyListener
|
protected MouseListener |
popupMouseListener
|
protected MouseMotionListener |
popupMouseMotionListener
|
protected PropertyChangeListener |
propertyChangeListener
此受保护字段是特定于实现的。 |
构造方法摘要 | |
---|---|
BasicComboBoxUI()
|
方法摘要 | |
---|---|
void |
addEditor()
此公共方法是特定于实现的,应该为私有,不要调用或重写。 |
void |
configureArrowButton()
此公共方法是特定于实现的,应该为私有。 |
protected void |
configureEditor()
此受保护方法是特定于实现的,应该为私有,不要调用或重写。 |
protected JButton |
createArrowButton()
创建一个按钮,将使用它来控制显示或隐藏组合框的弹出部分。 |
protected ComboBoxEditor |
createEditor()
创建将在可编辑的组合框中使用的默认编辑器。 |
protected FocusListener |
createFocusListener()
创建将添加到组合框的 FocusListener 。 |
protected ItemListener |
createItemListener()
创建将添加到组合框的 ItemListener 。 |
protected KeyListener |
createKeyListener()
创建将添加到组合框的 KeyListener 。 |
protected LayoutManager |
createLayoutManager()
创建用于管理构成组合框的组件的布局管理器。 |
protected ListDataListener |
createListDataListener()
创建将添加到 ComboBoxModel 的列表数据侦听器。 |
protected ComboPopup |
createPopup()
创建组合框的弹出部分。 |
protected PropertyChangeListener |
createPropertyChangeListener()
创建将添加到组合框的 PropertyChangeListener 。 |
protected ListCellRenderer |
createRenderer()
创建将在不可编辑的组合框中使用的默认渲染器。 |
static ComponentUI |
createUI(JComponent c)
|
Accessible |
getAccessibleChild(JComponent c,
int i)
返回对象的第 i 个 Accessible 子对象。 |
int |
getAccessibleChildrenCount(JComponent c)
返回对象中的可访问子对象数。 |
int |
getBaseline(JComponent c,
int width,
int height)
返回基线。 |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior(JComponent c)
返回一个枚举,它指示该组件的基线如何随大小的改变而发生更改。 |
protected Dimension |
getDefaultSize()
返回使用当前渲染器和字体的组合框的空显示区域的默认大小。 |
protected Dimension |
getDisplaySize()
返回显示区域的计算大小。 |
protected Insets |
getInsets()
获取 JComboBox 的 insets。 |
Dimension |
getMaximumSize(JComponent c)
返回指定组件的适合外观的最大大小。 |
Dimension |
getMinimumSize(JComponent c)
最小大小为显示区域加上 insets 再加上按钮的大小。 |
Dimension |
getPreferredSize(JComponent c)
返回指定组件的适合外观的首选大小。 |
protected void |
installComponents()
创建并初始化构成聚合组合框的组件。 |
protected void |
installDefaults()
将默认颜色、默认字体、默认渲染器和默认编辑器安装到 JComboBox 中。 |
protected void |
installKeyboardActions()
将键盘动作添加到 JComboBox。 |
protected void |
installListeners()
为组合框及其模型创建并安装侦听器。 |
void |
installUI(JComponent c)
配置指定组件,使其适合外观。 |
boolean |
isFocusTraversable(JComboBox c)
确定 JComboBox 是否是可焦点遍历的。 |
protected boolean |
isNavigationKey(int keyCode)
返回提供的 keyCode 是否映射到用于导航的键中。 |
boolean |
isPopupVisible(JComboBox c)
告知弹出控件是否可见。 |
void |
paint(Graphics g,
JComponent c)
绘制指定组件,使其适合外观。 |
void |
paintCurrentValue(Graphics g,
Rectangle bounds,
boolean hasFocus)
绘制当前所选项。 |
void |
paintCurrentValueBackground(Graphics g,
Rectangle bounds,
boolean hasFocus)
绘制当前所选项的背景。 |
protected Rectangle |
rectangleForCurrentValue()
返回为绘制当前所选项而保留的区域。 |
void |
removeEditor()
此公共方法是特定于实现的,应该为私有,不要调用或重写。 |
protected void |
selectNextPossibleValue()
选择列表中的下一项。 |
protected void |
selectPreviousPossibleValue()
选择列表中的上一项。 |
void |
setPopupVisible(JComboBox c,
boolean v)
隐藏弹出部分。 |
protected void |
toggleOpenClose()
如果正在显示弹出部分,则隐藏它;如果它是隐藏的,则显示它。 |
void |
unconfigureArrowButton()
此公共方法是特定于实现的,应该为私有。 |
protected void |
unconfigureEditor()
此受保护方法是特定于实现的,应该为私有。 |
protected void |
uninstallComponents()
注销并卸载组成组合框的聚合组件。 |
protected void |
uninstallDefaults()
从 JComboBox 中卸载默认颜色、默认字体、默认渲染器和默认编辑器。 |
protected void |
uninstallKeyboardActions()
移除焦点 InputMap 和 ActionMap。 |
protected void |
uninstallListeners()
从组合框及其模型中移除已安装的侦听器。 |
void |
uninstallUI(JComponent c)
在 installUI 期间,在指定组件上反向执行的配置操作。 |
从类 javax.swing.plaf.ComponentUI 继承的方法 |
---|
contains, update |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected JComboBox comboBox
protected boolean hasFocus
protected JList listBox
protected CellRendererPane currentValuePane
protected ComboPopup popup
protected Component editor
protected JButton arrowButton
protected KeyListener keyListener
createKeyListener()
protected FocusListener focusListener
createFocusListener()
protected PropertyChangeListener propertyChangeListener
createPropertyChangeListener()
protected ItemListener itemListener
createItemListener()
protected MouseListener popupMouseListener
protected MouseMotionListener popupMouseMotionListener
protected KeyListener popupKeyListener
protected ListDataListener listDataListener
createListDataListener()
protected boolean isMinimumSizeDirty
protected Dimension cachedMinimumSize
构造方法详细信息 |
---|
public BasicComboBoxUI()
方法详细信息 |
---|
public static ComponentUI createUI(JComponent c)
public void installUI(JComponent c)
ComponentUI
复制的描述ComponentUI
实例将作为 UI 委托安装在指定组件上时,可调用此方法。此方法应该为外观完整地配置组件,包括以下方面:
LayoutManager
。
PropertyChangeListener
。
ComponentUI
中的 installUI
c
- 将安装此 UI 委托的组件ComponentUI.uninstallUI(javax.swing.JComponent)
,
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
JComponent.updateUI()
public void uninstallUI(JComponent c)
ComponentUI
复制的描述installUI
期间,在指定组件上反向执行的配置操作。当此 UIComponent
实例将作为 UI 委托从指定组件上移除时,可调用此方法。此方法应该取消在 installUI
中执行的配置操作,非常小心地使 JComponent
实例处于某种洁净状态(没有额外的侦听器、没有特定于外观的属性对象等等)。配置内容应该包括以下方面:
ComponentUI
中的 uninstallUI
c
- 从中移除此 UI 委托的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数ComponentUI.installUI(javax.swing.JComponent)
,
JComponent.updateUI()
protected void installDefaults()
protected void installListeners()
protected void uninstallDefaults()
protected void uninstallListeners()
installListeners
中添加的相同。
protected ComboPopup createPopup()
ComboPopup
的实例ComboPopup
protected KeyListener createKeyListener()
KeyListener
。如果此方法返回 null,则不会将其添加到组合框。
KeyListener
的实例或 nullprotected FocusListener createFocusListener()
FocusListener
。如果此方法返回 null,则不会将其添加到组合框。
FocusListener
的实例或 nullprotected ListDataListener createListDataListener()
ComboBoxModel
的列表数据侦听器。如果此方法返回 null,则不会将其添加到组合框模型。
ListDataListener
的实例或 nullprotected ItemListener createItemListener()
ItemListener
。如果此方法返回 null,则不会将其添加到组合框。
子类可以重写此方法以返回其 ItemEvent 处理程序的实例。
ItemListener
的实例或 nullprotected PropertyChangeListener createPropertyChangeListener()
PropertyChangeListener
。如果此方法返回 null,则不会将其添加到组合框。
PropertyChangeListener
的实例或 nullprotected LayoutManager createLayoutManager()
protected ListCellRenderer createRenderer()
setRenderer
显式设置渲染器时才使用默认渲染器。
ListCellRender
JComboBox.setRenderer(javax.swing.ListCellRenderer)
protected ComboBoxEditor createEditor()
setEditor
显式设置编辑器时才使用默认编辑器。
ComboBoxEditor
JComboBox.setEditor(javax.swing.ComboBoxEditor)
protected void installComponents()
protected void uninstallComponents()
public void addEditor()
ComboBoxEditor
createEditor()
,
JComboBox.setEditor(javax.swing.ComboBoxEditor)
,
ComboBoxEditor
public void removeEditor()
addEditor()
protected void configureEditor()
addEditor()
protected void unconfigureEditor()
addEditor()
public void configureArrowButton()
createArrowButton()
public void unconfigureArrowButton()
createArrowButton()
protected JButton createArrowButton()
public boolean isPopupVisible(JComboBox c)
ComboBoxUI
中的 isPopupVisible
public void setPopupVisible(JComboBox c, boolean v)
ComboBoxUI
中的 setPopupVisible
public boolean isFocusTraversable(JComboBox c)
ComboBoxUI
中的 isFocusTraversable
public void paint(Graphics g, JComponent c)
ComponentUI
复制的描述ComponentUI.update
方法中调用此方法。子类应该重写此方法并使用指定 Graphics
对象来呈现组件的内容。
ComponentUI
中的 paint
g
- 将在其中进行绘制的 Graphics
上下文c
- 将绘制的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
public Dimension getPreferredSize(JComponent c)
ComponentUI
复制的描述null
,则首选大小将由组件的布局管理器计算(对于安装了特定布局管理器的组件而言,这是首选方法)。此方法的默认实现返回 null
。
ComponentUI
中的 getPreferredSize
c
- 将查询其首选大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension getMinimumSize(JComponent c)
ComponentUI
中的 getMinimumSize
c
- 将查询其最小大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
Dimension
对象或 null
JComponent.getMinimumSize()
,
LayoutManager.minimumLayoutSize(java.awt.Container)
,
ComponentUI.getPreferredSize(javax.swing.JComponent)
public Dimension getMaximumSize(JComponent c)
ComponentUI
复制的描述null
,则最大大小将由组件的布局管理器计算(对于安装了特定布局管理器的组件而言,这是首选方法)。此方法的默认实现调用 getPreferredSize
并返回该值。
ComponentUI
中的 getMaximumSize
c
- 将查询其最大大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
Dimension
对象或 null
JComponent.getMaximumSize()
,
LayoutManager2.maximumLayoutSize(java.awt.Container)
public int getBaseline(JComponent c, int width, int height)
ComponentUI
中的 getBaseline
c
- 为其请求基线的 JComponent
width
- 为其获取基线的宽度height
- 为其获取基线的高度
NullPointerException
- 如果 c
为 null
IllegalArgumentException
- 如果宽度或高度 < 0JComponent.getBaseline(int, int)
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
ComponentUI
中的 getBaselineResizeBehavior
c
- 为其返回调整大小行为的 JComponent
NullPointerException
- 如果 c
为 null
JComponent.getBaseline(int, int)
public int getAccessibleChildrenCount(JComponent c)
ComponentUI
复制的描述Accessible
,那么此方法应返回此对象的子对象数。如果 UI 在可看作组件的屏幕上呈现一些区域,那么它们可能希望重写此方法,但实际组件并不用于呈现那些区域。
注:从 v1.3 开始,建议开发人员调用 Component.AccessibleAWTComponent.getAccessibleChildrenCount()
替代此方法。
ComponentUI
中的 getAccessibleChildrenCount
ComponentUI.getAccessibleChild(javax.swing.JComponent, int)
public Accessible getAccessibleChild(JComponent c, int i)
ComponentUI
复制的描述i
个 Accessible
子对象。如果 UI 在可看作组件的屏幕上呈现一些区域,那么它们可能需要重写此方法,但实际组件并不用于呈现那些区域。
注:从 v1.3 开始,建议开发人员调用 Component.AccessibleAWTComponent.getAccessibleChild()
替代此方法。
ComponentUI
中的 getAccessibleChild
i
- 子对象的从零开始的索引
i
个 Accessible
子对象ComponentUI.getAccessibleChildrenCount(javax.swing.JComponent)
protected boolean isNavigationKey(int keyCode)
protected void selectNextPossibleValue()
protected void selectPreviousPossibleValue()
protected void toggleOpenClose()
protected Rectangle rectangleForCurrentValue()
protected Insets getInsets()
public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
public void paintCurrentValueBackground(Graphics g, Rectangle bounds, boolean hasFocus)
protected Dimension getDefaultSize()
getDisplaySize()
protected Dimension getDisplaySize()
对于项数不多的组合框,建议使用原型显示值,使用原型显示值可以大大加速显示大小的计算。
JComboBox.setPrototypeDisplayValue(java.lang.Object)
protected void installKeyboardActions()
protected void uninstallKeyboardActions()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。