public abstract class ComponentUI extends Object
JComponent
类调用此类的方法,以便委派可能因安装的外观而有所不同的操作(绘画,布局计算等)。
客户端程序不应直接调用此类的方法。
JComponent
, UIManager
Constructor and Description |
---|
ComponentUI()
唯一的构造函数。
|
Modifier and Type | Method and Description |
---|---|
boolean |
contains(JComponent c, int x, int y)
返回
true 如果指定的
x,y位置包含的外观和感觉的定义指定组件的形状内。
|
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中反转在
installUI 上完成的
installUI 。
|
void |
update(Graphics g, JComponent c)
通知这个UI委托是时候绘制指定的组件。
|
public void installUI(JComponent c)
ComponentUI
实例作为指定组件上的UI委托时,将调用此方法。
该方法应该完全配置组件的外观,包括以下内容:
LayoutManager
上安装LayoutManager。 PropertyChangeListener
上创建/安装PropertyChangeListener,以便适当地检测和响应组件属性更改。 c
- 正在安装此UI代理的组件
uninstallUI(javax.swing.JComponent)
,
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
JComponent.updateUI()
public void uninstallUI(JComponent c)
installUI
上完成的installUI
。
当将此UIComponent
实例作为指定组件的UI委托删除时,将调用此方法。
该方法应该撤销在installUI中执行的installUI
,小心使JComponent
实例处于干净状态(无外部侦听器,外观特定属性对象等)。
这应该包括以下内容:
c
- 从中删除此UI代理的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
installUI(javax.swing.JComponent)
,
JComponent.updateUI()
public void paint(Graphics g, JComponent c)
ComponentUI.update
指定组件正在被绘制时的方法。
子类应该覆盖此方法,并使用指定的Graphics
对象来呈现Graphics
的内容。
g
- 要绘画的
Graphics
上下文
c
- 被涂的部件
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
update(java.awt.Graphics, javax.swing.JComponent)
public void update(Graphics g, JComponent c)
JComponent
调用。
默认情况下,如果该方法的opaque
属性为true
,则该方法将使用其背景颜色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位置包含的外观和感觉的定义指定组件的形状内。
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
s不应将该组件对准其基线。
此方法返回-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
,则此方法应该返回此对象的子节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)