java.lang.Object
javax.swing.plaf.ComponentUI
- 直接已知的子类:
-
ButtonUI
,ColorChooserUI
,ComboBoxUI
,DesktopIconUI
,DesktopPaneUI
,FileChooserUI
,InternalFrameUI
,LabelUI
,LayerUI
,ListUI
,MenuBarUI
,OptionPaneUI
,PanelUI
,PopupMenuUI
,ProgressBarUI
,RootPaneUI
,ScrollBarUI
,ScrollPaneUI
,SeparatorUI
,SliderUI
,SpinnerUI
,SplitPaneUI
,TabbedPaneUI
,TableHeaderUI
,TableUI
,TextUI
,ToolBarUI
,ToolTipUI
,TreeUI
,ViewportUI
Swing可插拔外观架构中所有UI委托对象的基类。Swing组件的UI委托对象负责实现依赖外观的组件方面。
JComponent
类调用此类中的方法以委托可能因安装的外观而异的操作(绘制、布局计算等)。客户端程序不应直接调用此类上的方法。
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
contains
(JComponent c, int x, int y) 如果指定的x,y位置包含在指定组件的外观定义形状内,则返回true
。static ComponentUI
返回指定组件的UI委托实例。getAccessibleChild
(JComponent c, int i) 返回对象的第i个Accessible
子级。int
返回对象中可访问的子级数。int
getBaseline
(JComponent c, int width, int height) 返回基线。返回一个枚举,指示组件的基线随大小更改而变化的方式。返回适合外观的指定组件的最大大小。返回适合外观的指定组件的最小大小。返回适合外观的指定组件的首选大小。void
为外观适当配置指定的组件。void
paint
(Graphics g, JComponent c) 为外观适当绘制指定的组件。void
反转在installUI
期间对指定组件执行的配置。void
update
(Graphics g, JComponent c) 通知此UI委托,现在是时候绘制指定的组件了。
-
Constructor Details
-
ComponentUI
public ComponentUI()唯一构造函数。(通常由子类构造函数隐式调用。)
-
-
Method Details
-
installUI
为外观适当配置指定的组件。当将ComponentUI
实例安装为指定组件的UI委托时,将调用此方法。此方法应完全为外观配置组件,包括以下内容:- 在组件上安装默认属性值,如颜色、字体、边框、图标、不透明度等。尽可能地,客户端程序初始化的属性值不应被覆盖。
- 如有必要,在组件上安装
LayoutManager
。 - 为组件创建/添加任何必需的子组件。
- 在组件上创建/安装事件监听器。
- 在组件上创建/安装
PropertyChangeListener
,以便适当地检测和响应组件属性更改。 - 在组件上安装键盘UI(助记键、遍历等)。
- 初始化任何适当的实例数据。
- 参数:
-
c
- 正在安装此UI委托的组件 - 参见:
-
uninstallUI
反转在installUI
期间对指定组件执行的配置。当将此UIComponent
实例作为指定组件的UI委托移除时,将调用此方法。此方法应撤消在installUI
中执行的配置,务必使JComponent
实例保持干净状态(没有多余的监听器、特定于外观的属性对象等)。这应包括以下内容:- 从组件中移除任何UI设置的边框。
- 从组件中移除任何UI设置的布局管理器。
- 从组件中移除任何UI添加的子组件。
- 从组件中移除任何UI添加的事件/属性监听器。
- 从组件中移除任何UI安装的键盘UI。
- 将分配的任何实例数据对象置为null,以便进行垃圾回收。
- 参数:
-
c
- 正在移除此UI委托的组件;通常忽略此参数,但如果UI对象是无状态的并由多个组件共享,则可能会使用该参数 - 参见:
-
paint
为外观适当绘制指定的组件。当正在绘制指定组件时,此方法将从ComponentUI.update
方法中调用。子类应重写此方法,并使用指定的Graphics
对象来呈现组件的内容。- 参数:
-
g
- 用于绘制的Graphics
上下文 -
c
- 正在绘制的组件;通常忽略此参数,但如果UI对象是无状态的并由多个组件共享,则可能会使用该参数 - 参见:
-
update
通知此UI委托,现在是时候绘制指定的组件了。当正在绘制指定组件时,JComponent
将调用此方法。默认情况下,如果其
opaque
属性为true
,此方法将使用其背景颜色填充指定组件,然后立即调用paint
。一般情况下,子类无需重写此方法;所有外观渲染代码应位于paint
方法中。- 参数:
-
g
- 用于绘制的Graphics
上下文 -
c
- 正在绘制的组件;通常忽略此参数,但如果UI对象是无状态的并由多个组件共享,则可能会使用该参数 - 参见:
-
getPreferredSize
返回适合外观的指定组件的首选大小。如果返回null
,则首选大小将由组件的布局管理器计算(对于安装了特定布局管理器的任何组件,这是首选方法)。此方法的默认实现返回null
。- 参数:
-
c
- 正在查询其首选大小的组件;通常忽略此参数,但如果UI对象是无状态的并由多个组件共享,则可能会使用该参数 - 返回:
-
包含给定组件的首选大小适合外观的
Dimension
对象 - 参见:
-
getMinimumSize
返回适合外观的指定组件的最小大小。如果返回null
,则最小大小将由组件的布局管理器计算(对于安装了特定布局管理器的任何组件,这是首选方法)。此方法的默认实现调用getPreferredSize
并返回该值。- 参数:
-
c
- 被查询最小尺寸的组件;通常会忽略此参数,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 返回:
-
一个
Dimension
对象或null
- 参见:
-
getMaximumSize
返回指定组件适合外观和感觉的最大尺寸。如果返回null
,则最大尺寸将由组件的布局管理器计算(这是任何具有特定布局管理器安装的组件的首选方法)。此方法的默认实现调用getPreferredSize
并返回该值。- 参数:
-
c
- 被查询最大尺寸的组件;通常会忽略此参数,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 返回:
-
一个
Dimension
对象或null
- 参见:
-
contains
如果指定的x,y位置包含在指定组件的外观和感觉定义的形状内,则返回true
。x
和y
被定义为相对于指定组件的坐标系。尽管组件的bounds
被限制为矩形,但此方法提供了在这些边界内定义非矩形形状以进行点击检测的方法。- 参数:
-
c
- 正在查询x,y位置的组件;通常会忽略此参数,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 -
x
- 点的x坐标 -
y
- 点的y坐标 - 返回:
-
如果指定的
x,y
位置包含在给定组件的外观和感觉定义的形状内,则返回true
- 参见:
-
createUI
返回指定组件的UI代理实例。每个子类必须提供自己的静态createUI
方法,返回该UI代理子类的实例。如果UI代理子类是无状态的,则可以返回一个被多个组件共享的实例。如果UI代理是有状态的,则应为每个组件返回一个新实例。此方法的默认实现会抛出错误,因为不应该调用它。- 参数:
-
c
- 要为其创建UI代理的JComponent
- 返回:
-
用于
c
的ComponentUI
对象
-
getBaseline
返回基线。基线从组件的顶部开始测量。此方法主要用于LayoutManager
来沿着它们的基线对齐组件。返回值小于0表示此组件没有合理的基线,LayoutManager
不应该将此组件与其基线对齐。此方法返回-1。具有有意义基线的子类应适当重写。
- 参数:
-
c
- 请求基线的JComponent
-
width
- 获取基线的宽度 -
height
- 获取基线的高度 - 返回:
- 基线或值< 0表示没有合理的基线
- 抛出:
-
NullPointerException
- 如果c
为null
-
IllegalArgumentException
- 如果宽度或高度< 0 - 自:
- 1.6
- 参见:
-
getBaselineResizeBehavior
返回一个枚举,指示组件的基线随尺寸变化而变化的方式。此方法主要用于布局管理器和GUI构建器。此方法返回
BaselineResizeBehavior.OTHER
。支持基线的子类应适当重写。- 参数:
-
c
- 要返回基线调整行为的JComponent
- 返回:
- 一个枚举,指示组件尺寸变化时基线的变化方式
- 抛出:
-
NullPointerException
- 如果c
为null
- 自:
- 1.6
- 参见:
-
getAccessibleChildrenCount
返回对象中可访问的子对象数量。如果此对象的所有子对象都实现了Accessible
,则此方法应返回此对象的子对象数量。如果UI呈现屏幕上可以视为组件的区域,但实际上未使用实际组件来呈现这些区域,则UI可能希望覆盖此方法。注意:从v1.3开始,建议开发人员调用Component.AccessibleAWTComponent.getAccessibleChildrenCount()
而不是调用此方法。- 参数:
-
c
- 要获取可访问子对象计数的JComponent
- 返回:
- 对象中可访问的子对象数量
- 参见:
-
getAccessibleChild
返回对象的第i个Accessible
子对象。如果UI呈现屏幕上可以视为组件的区域,但实际上未使用实际组件来呈现这些区域,则UI可能需要覆盖此方法。注意:从v1.3开始,建议开发人员调用
Component.AccessibleAWTComponent.getAccessibleChild()
而不是调用此方法。- 参数:
-
c
- 要获取子对象的JComponent
-
i
- 子对象的从零开始的索引 - 返回:
-
对象的第i个
Accessible
子对象 - 参见:
-