- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.ComboBoxUI
-
- javax.swing.plaf.basic.BasicComboBoxUI
-
- javax.swing.plaf.synth.SynthComboBoxUI
-
- All Implemented Interfaces:
-
PropertyChangeListener
,EventListener
,SynthConstants
,SynthUI
public class SynthComboBoxUI extends BasicComboBoxUI implements PropertyChangeListener, SynthUI
提供JComboBox
的Synth L&F UI代表。- 从以下版本开始:
- 1.7
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicComboBoxUI
BasicComboBoxUI.ComboBoxLayoutManager, BasicComboBoxUI.FocusHandler, BasicComboBoxUI.ItemHandler, BasicComboBoxUI.KeyHandler, BasicComboBoxUI.ListDataHandler, BasicComboBoxUI.PropertyChangeHandler
-
-
Field Summary
-
Fields inherited from class javax.swing.plaf.basic.BasicComboBoxUI
arrowButton, cachedMinimumSize, comboBox, currentValuePane, editor, focusListener, hasFocus, isMinimumSizeDirty, itemListener, keyListener, listBox, listDataListener, padding, popup, popupKeyListener, popupMouseListener, popupMouseMotionListener, propertyChangeListener, squareButton
-
Fields inherited from interface javax.swing.plaf.synth.SynthConstants
DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED
-
-
构造方法摘要
构造方法 Constructor 描述 SynthComboBoxUI()
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected JButton
createArrowButton()
创建一个按钮,该按钮将用作控件来显示或隐藏组合框的弹出窗口部分。protected ComboBoxEditor
createEditor()
创建将在可编辑组合框中使用的默认编辑器。protected ComboPopup
createPopup()
创建组合框的弹出窗口部分。protected ListCellRenderer<Object>
createRenderer()
创建将在不可编辑的组合框中使用的默认渲染器。static ComponentUI
createUI(JComponent c)
为给定的组件创建一个新的UI对象。SynthContext
getContext(JComponent c)
返回指定组件的上下文。protected Dimension
getDefaultSize()
使用当前渲染器和字体返回组合框的空显示区域的默认大小。protected void
installDefaults()
将默认颜色,默认字体,默认渲染器和默认编辑器安装到JComboBox中。protected void
installListeners()
为组合框及其模型创建并安装侦听器。void
installUI(JComponent c)
适当地配置指定的组件的外观和感觉。void
paint(Graphics g, JComponent c)
根据外观和外观绘制指定的组件。protected void
paint(SynthContext context, Graphics g)
绘制指定的组件。void
paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)
画边框void
paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
绘制当前选定的项目。void
propertyChange(PropertyChangeEvent e)
当绑定属性更改时,此方法将被调用。protected void
uninstallDefaults()
从组合框中卸载默认颜色,默认字体,默认渲染器和默认编辑器。protected void
uninstallListeners()
从组合框及其模型中删除已安装的监听器。void
uninstallUI(JComponent c)
在installUI
反转在指定组件上完成的配置。void
update(Graphics g, JComponent c)
通知此UI代理重新绘制指定的组件。-
Methods inherited from class javax.swing.plaf.basic.BasicComboBoxUI
addEditor, configureArrowButton, configureEditor, createFocusListener, createItemListener, createKeyListener, createLayoutManager, createListDataListener, createPropertyChangeListener, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getDisplaySize, getInsets, getMaximumSize, getMinimumSize, getPreferredSize, getSizeForComponent, installComponents, installKeyboardActions, isFocusTraversable, isNavigationKey, isPopupVisible, paintCurrentValueBackground, rectangleForCurrentValue, removeEditor, selectNextPossibleValue, selectPreviousPossibleValue, setPopupVisible, toggleOpenClose, unconfigureArrowButton, unconfigureEditor, uninstallComponents, uninstallKeyboardActions
-
Methods inherited from class javax.swing.plaf.ComponentUI
contains
-
-
-
-
方法详细信息
-
createUI
public static ComponentUI createUI(JComponent c)
为给定的组件创建一个新的UI对象。- 参数
-
c
- 为其创建UI对象的组件 - 结果
- UI对象
-
installUI
public void installUI(JComponent c)
适当地配置指定的组件的外观和感觉。 当正在安装ComponentUI
实例作为指定组件上的UI委托时,将调用此方法。 该方法应该完全配置组件的外观,包括以下内容:- 为组件上的颜色,字体,边框,图标,不透明度等安装默认属性值。 只要有可能,由客户端程序初始化的属性值不应该被重写。
- 如有必要,请在组件上安装
LayoutManager
。 - 创建/添加任何所需的子组件到组件。
- 在组件上创建/安装事件监听器。
- 在组件上创建/安装
PropertyChangeListener
,以便适当地检测和响应组件属性的更改。 - 在组件上安装键盘UI(助记符,遍历等)。
- 初始化任何适当的实例数据。
- 重写:
-
installUI
中的BasicComboBoxUI
- 参数
-
c
- 正在安装此UIc
的组件 - 另请参见:
-
ComponentUI.uninstallUI(javax.swing.JComponent)
,JComponent.setUI(javax.swing.plaf.ComponentUI)
,JComponent.updateUI()
-
installDefaults
protected void installDefaults()
描述从类别复制:BasicComboBoxUI
将默认颜色,默认字体,默认渲染器和默认编辑器安装到JComboBox中。
-
installListeners
protected void installListeners()
为组合框及其模型创建并安装侦听器。 当安装UI时调用此方法。
-
uninstallUI
public void uninstallUI(JComponent c)
在installUI
反转在指定组件上完成的配置。 当这个UIComponent
实例作为指定组件的UI委托被删除时,将调用此方法。 该方法应该撤消在installUI
执行的配置,小心使JComponent
实例处于干净状态(无外部侦听器,外观特定属性对象等)。 这应该包括以下内容:- 从组件中删除任何UI集边框。
- 删除组件上的任何UI集布局管理器。
- 从组件中删除任何添加了UI的子组件。
- 从组件中删除任何UI添加的事件/属性侦听器。
- 从组件中删除任何UI安装的键盘UI。
- 对任何分配的实例数据对象进行空白以允许GC。
- 重写:
-
uninstallUI
在BasicComboBoxUI
- 参数
-
c
- 从中删除此UIc
的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 另请参见:
-
ComponentUI.installUI(javax.swing.JComponent)
,JComponent.updateUI()
-
uninstallDefaults
protected void uninstallDefaults()
从组合框中卸载默认颜色,默认字体,默认渲染器和默认编辑器。
-
uninstallListeners
protected void uninstallListeners()
从组合框及其模型中删除已安装的监听器。 已删除的侦听器的数量和类型应与installListeners
中添加的installListeners
-
getContext
public SynthContext getContext(JComponent c)
返回指定组件的上下文。- Specified by:
-
getContext
在接口SynthUI
- 参数
-
c
- 组件请求SynthContext。 - 结果
- SynthContext描述组件。
-
createPopup
protected ComboPopup createPopup()
创建组合框的弹出窗口部分。- 重写:
-
createPopup
在BasicComboBoxUI
- 结果
-
一个
ComboPopup
- 另请参见:
-
ComboPopup
-
createRenderer
protected ListCellRenderer<Object> createRenderer()
创建将在不可编辑的组合框中使用的默认渲染器。 只有在没有使用setRenderer
显式设置渲染器的情况下,才会使用默认渲染器。- 重写:
-
createRenderer
在BasicComboBoxUI
- 结果
-
一个
ListCellRender
用于组合框 - 另请参见:
-
JComboBox.setRenderer(javax.swing.ListCellRenderer<? super E>)
-
createEditor
protected ComboBoxEditor createEditor()
创建将在可编辑组合框中使用的默认编辑器。 只有当编辑器未被明确设置为setEditor
才使用默认编辑器。- 重写:
-
createEditor
在BasicComboBoxUI
- 结果
-
一个
ComboBoxEditor
用于组合框 - 另请参见:
-
JComboBox.setEditor(javax.swing.ComboBoxEditor)
-
propertyChange
public void propertyChange(PropertyChangeEvent e)
当绑定属性更改时,此方法将被调用。- Specified by:
-
propertyChange
在接口PropertyChangeListener
- 参数
-
e
- 描述事件源和已更改的属性的PropertyChangeEvent对象。
-
createArrowButton
protected JButton createArrowButton()
创建一个按钮,该按钮将用作控件来显示或隐藏组合框的弹出窗口部分。- 重写:
-
createArrowButton
在BasicComboBoxUI
- 结果
- 一个代表弹出窗口控件的按钮
-
update
public void update(Graphics g, JComponent c)
通知此UI代理重新绘制指定的组件。 该方法描述了组件背景,然后调用了paint(SynthContext,Graphics)
方法。通常,此方法不需要被子类覆盖。 所有Look和Feel渲染代码应该在
paint
方法中。- 重写:
-
update
在ComponentUI
- 参数
-
g
- 用于绘画的Graphics
对象 -
c
- 正在涂漆的组件 - 另请参见:
-
paint(SynthContext,Graphics)
-
paint
public void paint(Graphics g, JComponent c)
根据外观和外观绘制指定的组件。Synth Look and Feel不使用此方法。 绘画由
paint(SynthContext,Graphics)
处理。- 重写:
-
paint
在BasicComboBoxUI
- 参数
-
g
- 用于绘画的Graphics
对象 -
c
- 正在涂漆的组件 - 另请参见:
-
paint(SynthContext,Graphics)
-
paint
protected void paint(SynthContext context, Graphics g)
绘制指定的组件。- 参数
-
context
- 正在绘制的组件的上下文 -
g
- 用于绘画的Graphics
对象 - 另请参见:
-
update(Graphics,JComponent)
-
paintBorder
public void paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)
画边框- Specified by:
-
paintBorder
在接口SynthUI
- 参数
-
context
- 组件上下文 -
g
-Graphics
上画 -
x
- X坐标 -
y
- Y坐标 -
w
- 边框的宽度 -
h
- 边框的高度
-
paintCurrentValue
public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
绘制当前选定的项目。- 重写:
-
paintCurrentValue
在BasicComboBoxUI
- 参数
-
g
-实例Graphics
-
bounds
- 要渲染的边框矩形 -
hasFocus
- 集中
-
getDefaultSize
protected Dimension getDefaultSize()
使用当前渲染器和字体返回组合框的空显示区域的默认大小。 当计算组合框的大小时,此方法被覆盖以使用SynthComboBoxRenderer而不是DefaultListCellRenderer作为默认渲染器。 在组合没有任何数据的情况下使用。- 重写:
-
getDefaultSize
在BasicComboBoxUI
- 结果
- 一个空的显示区域的大小
- 另请参见:
-
BasicComboBoxUI.getDisplaySize()
-
-