java.lang.Object javax.swing.plaf.ComponentUI
public abstract class ComponentUI
用于 Swing 可插入外观架构中所有 UI 委托对象的基本类。Swing 组件的 UI 委托对象负责实现依赖于外观的那些组件的某些方面。为了委托那些可能随所安装的外观而改变的操作(绘制、布局计算等等),JComponent
类要调用来自此类的方法。客户端程序不应在此类上直接调用这些方法。
JComponent
,
UIManager
构造方法摘要 | |
---|---|
ComponentUI() 单独的构造方法。 |
方法摘要 | |
---|---|
boolean |
contains(JComponent c, int x, int y) 如果指定 x,y 位置包含在指定组件外观的已定义形状中,则返回 true 。 |
static ComponentUI |
createUI(JComponent c) 返回指定组件的一个 UI 委托实例。 |
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) 返回一个枚举,指示组件的基线如何随大小的改变而发生更改。 |
Dimension |
getMaximumSize(JComponent c) 返回指定组件的适合外观的最大大小。 |
Dimension |
getMinimumSize(JComponent c) 返回指定组件的适合外观的最小大小。 |
Dimension |
getPreferredSize(JComponent c) 返回指定组件的适合外观的首选大小。 |
void |
installUI(JComponent c) 配置指定组件,使其适合外观。 |
void |
paint(Graphics g, JComponent c) 绘制指定组件,使其适合外观。 |
void |
uninstallUI(JComponent c) 在 installUI 期间,在指定组件上反向执行的配置操作。 |
void |
update(Graphics g, JComponent c) 通知此 UI 委托开始绘制指定的组件。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public ComponentUI()
方法详细信息 |
---|
public void installUI(JComponent c)
ComponentUI
实例将作为 UI 委托安装在指定组件上时,可调用此方法。此方法应该为外观完整地配置组件,包括以下方面:
LayoutManager
。 PropertyChangeListener
。
c
- 将安装此 UI 委托的组件
uninstallUI(javax.swing.JComponent)
,
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
JComponent.updateUI()
public void uninstallUI(JComponent c)
installUI
期间,在指定组件上反向执行的配置操作。当此
UIComponent
实例将作为 UI 委托从指定组件上移除时,可调用此方法。此方法应该取消在
installUI
中执行的配置操作,非常小心地使
JComponent
实例处于某种洁净状态(没有额外的侦听器、没有特定于外观的属性对象等等)。配置内容应该包括以下方面:
c
- 从中移除此 UI 委托的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
installUI(javax.swing.JComponent)
,
JComponent.updateUI()
public void paint(Graphics g, JComponent c)
ComponentUI.update
方法中调用此方法。子类应该重写此方法并使用指定
Graphics
对象来呈现组件的内容。
g
- 将在其中进行绘制的
Graphics
上下文
c
- 将绘制的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
update(java.awt.Graphics, javax.swing.JComponent)
public void update(Graphics g, JComponent c)
JComponent
调用此方法。默认情况下,此方法将使用其背景色填充指定组件(如果其
opaque
属性为
true
),然后立刻调用
paint
。通常无需由子类重写此方法;所有呈现代码的外观都应位于
paint
方法中。
g
- 将在其中进行绘制的
Graphics
上下文
c
- 将绘制的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
paint(java.awt.Graphics, javax.swing.JComponent)
,
JComponent.paintComponent(java.awt.Graphics)
public Dimension getPreferredSize(JComponent c)
null
,则首选大小将由组件的布局管理器计算(对于安装了特定布局管理器的组件而言,这是首选方法)。此方法的默认实现返回
null
。
c
- 将查询其首选大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension getMinimumSize(JComponent c)
null
,则最小大小将由组件的布局管理器计算(对于安装了特定布局管理器的组件而言,这是首选方法)。此方法的默认实现调用
getPreferredSize
并返回该值。
c
- 将查询其最小大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
Dimension
对象或
null
JComponent.getMinimumSize()
,
LayoutManager.minimumLayoutSize(java.awt.Container)
,
getPreferredSize(javax.swing.JComponent)
public Dimension getMaximumSize(JComponent c)
null
,则最大大小将由组件的布局管理器计算(对于安装了特定布局管理器的组件而言,这是首选方法)。此方法的默认实现调用
getPreferredSize
并返回该值。
c
- 将查询其最大大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
Dimension
对象或
null
JComponent.getMaximumSize()
,
LayoutManager2.maximumLayoutSize(java.awt.Container)
public boolean contains(JComponent c, int x, int y)
true
。
x
和
y
都是相对于指定组件的坐标系统定义的。尽管组件的
bounds
被限制为一个矩形,但为了进行命中检测,此方法提供了在这些边界内定义非矩形形状的办法。
c
- 将在其中查询
x,y 的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
x
- 点的
x 坐标
y
- 点的
y 坐标
JComponent.contains(int, int)
,
Component.contains(int, int)
public static ComponentUI createUI(JComponent c)
createUI
方法,该方法返回 UI 委托子类的一个实例。如果 UI 委托子类是无状态的,则该方法可以返回一个由多个组件共享的实例。如果 UI 委托是有状态的,则该方法应该为每个组件返回一个新实例。此方法的默认实现抛出一个错误,因为它永远都不应该被调用。
public int getBaseline(JComponent c, int width, int height)
LayoutManager
用来沿其基线对齐组件。小于 0 的返回值指示此组件不具有合理的基线以及
LayoutManager
不应在其基线上对齐此组件。
此方法返回 -1。具有有意义的基线的子类应该适当地进行重写。
c
- 为其请求基线的
JComponent
width
- 为其获取基线的宽度
height
- 为其获取基线的高度
NullPointerException
- 如果
c
为
null
IllegalArgumentException
- 如果宽度或高度 < 0
JComponent.getBaseline(int,int)
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
此方法返回 BaselineResizeBehavior.OTHER
。支持基线的子类应该适当地进行重写。
c
- 为其返回调整大小行为的
JComponent
NullPointerException
- 如果
c
为
null
JComponent.getBaseline(int, int)
public int getAccessibleChildrenCount(JComponent c)
Accessible
,那么此方法应返回此对象的子对象数。如果 UI 在可看作组件的屏幕上呈现一些区域,那么它们可能希望重写此方法,但实际组件并不用于呈现那些区域。 注:从 v1.3 开始,建议开发人员调用
Component.AccessibleAWTComponent.getAccessibleChildrenCount()
替代此方法。
getAccessibleChild(javax.swing.JComponent, int)
public Accessible getAccessibleChild(JComponent c, int i)
i
个
Accessible
子对象。如果 UI 在可看作组件的屏幕上呈现一些区域,那么它们可能需要重写此方法,但实际组件并不用于呈现那些区域。
注:从 v1.3 开始,建议开发人员调用 Component.AccessibleAWTComponent.getAccessibleChild()
替代此方法。
i
- 子对象的从零开始的索引
i
个
Accessible
子对象
getAccessibleChildrenCount(javax.swing.JComponent)