- 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
public abstract class ComponentUI extends Object
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
thAccessible
子对象。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委托,是时候绘制指定的组件。
-
-
-
方法详细信息
-
installUI
public void installUI(JComponent c)
适当地配置指定组件的外观。 将ComponentUI
实例作为指定组件上的UI委托安装时,将调用此方法。 此方法应完全配置组件的外观,包括以下内容:- 在组件上安装颜色,字体,边框,图标,不透明度等的默认属性值。 只要有可能,由客户端程序初始化的属性值不应该被重写。
- 如有必要,在组件上安装
LayoutManager
。 - 创建/添加任何所需的子组件到组件。
- 在组件上创建/安装事件侦听器。
- 在组件上创建/安装
PropertyChangeListener
,以便适当地检测和响应组件属性更改。 - 在组件上安装键盘UI(助记符,遍历等)。
- 初始化任何适当的实例数据。
- 参数
-
c
- 正在安装此UI委托的组件 - 另请参见:
-
uninstallUI(javax.swing.JComponent)
,JComponent.setUI(javax.swing.plaf.ComponentUI)
,JComponent.updateUI()
-
uninstallUI
public void uninstallUI(JComponent c)
在installUI
期间反转在指定组件上完成的配置。 当将此UIComponent
实例作为指定组件的UI委托删除时,将调用此方法。 此方法应撤消在installUI
执行的配置,小心将JComponent
实例保持在干净状态(没有无关的侦听器,特定于外观的属性对象等)。 这应包括以下内容:- 从组件中删除任何UI设置边框。
- 删除组件上的所有UI集布局管理器。
- 从组件中删除任何UI添加的子组件。
- 从组件中删除任何UI添加的事件/属性侦听器。
- 从组件中删除任何UI安装的键盘UI。
- Nullify任何已分配的实例数据对象以允许GC。
- 参数
-
c
- 要从中删除此UI委托的组件; 此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可以使用此参数 - 另请参见:
-
installUI(javax.swing.JComponent)
,JComponent.updateUI()
-
paint
public void paint(Graphics g, JComponent c)
适当地绘制指定的组件以获得外观。 在绘制指定的组件时,从ComponentUI.update
方法调用此方法。 子类应重写此方法并使用指定的Graphics
对象来呈现组件的内容。- 参数
-
g
- 要绘制的Graphics
上下文 -
c
- 正在绘制的组件; 此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可以使用此参数 - 另请参见:
-
update(java.awt.Graphics, javax.swing.JComponent)
-
update
public void update(Graphics g, JComponent c)
通知此UI委托,是时候绘制指定的组件。 在绘制指定的组件时,由JComponent
调用此方法。默认情况下,如果指定组件的
opaque
属性为true
,则此方法将使用其背景颜色填充指定组件,然后立即调用paint
。 通常,这个方法不需要被子类覆盖; 所有外观渲染代码都应该驻留在paint
方法中。- 参数
-
g
- 要绘制的Graphics
上下文 -
c
- 正在绘制的组件; 此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可以使用此参数 - 另请参见:
-
paint(java.awt.Graphics, javax.swing.JComponent)
,JComponent.paintComponent(java.awt.Graphics)
-
getPreferredSize
public Dimension getPreferredSize(JComponent c)
返回适合外观的指定组件的首选大小。 如果返回null
,则首选大小将由组件的布局管理器计算(这是安装了特定布局管理器的任何组件的首选方法)。 此方法的默认实现返回null
。- 参数
-
c
- 正在查询其首选大小的组件; 此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可以使用此参数 - 结果
-
Dimension
对象,包含适合外观的给定组件的首选大小 - 另请参见:
-
JComponent.getPreferredSize()
,LayoutManager.preferredLayoutSize(java.awt.Container)
-
getMinimumSize
public Dimension getMinimumSize(JComponent c)
返回适合外观的指定组件的最小大小。 如果返回null
,则最小大小将由组件的布局管理器计算(对于安装了特定布局管理器的任何组件,这是首选方法)。 此方法的默认实现调用getPreferredSize
并返回该值。- 参数
-
c
- 正在查询其最小大小的组件; 此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可以使用此参数 - 结果
-
Dimension
对象或null
- 另请参见:
-
JComponent.getMinimumSize()
,LayoutManager.minimumLayoutSize(java.awt.Container)
,getPreferredSize(javax.swing.JComponent)
-
getMaximumSize
public Dimension getMaximumSize(JComponent c)
返回适合外观的指定组件的最大大小。 如果返回null
,则最大大小将由组件的布局管理器计算(这是安装了特定布局管理器的任何组件的首选方法)。 此方法的默认实现调用getPreferredSize
并返回该值。- 参数
-
c
- 正在查询其最大大小的组件; 此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可以使用此参数 - 结果
-
Dimension
对象或null
- 另请参见:
-
JComponent.getMaximumSize()
,LayoutManager2.maximumLayoutSize(java.awt.Container)
-
contains
public boolean contains(JComponent c, int x, int y)
如果指定的x,y位置包含在指定组件的外观定义形状中,则返回true
。x
和y
被定义为相对于指定组件的坐标系。 虽然组件的bounds
被约束为矩形,但此方法提供了在这些边界内定义非矩形形状以进行命中检测的方法。- 参数
-
c
- 正在查询x,y位置的组件; 此参数通常被忽略,但如果UI对象是无状态的并且由多个组件共享,则可以使用此参数 -
x
- 该点的 x坐标 -
y
- 该点的 y坐标 - 结果
-
true
如果指定的x,y
位置包含在给定组件的外观定义形状中 - 另请参见:
-
JComponent.contains(int, int)
,Component.contains(int, int)
-
createUI
public static ComponentUI createUI(JComponent c)
返回指定组件的UI委托的实例。 每个子类必须提供自己的静态createUI
方法,该方法返回该UI委托子类的实例。 如果UI委托子类是无状态的,则它可能返回由多个组件共享的实例。 如果UI委托是有状态的,那么它应该为每个组件返回一个新实例。 此方法的默认实现会引发错误,因为它永远不应该被调用。- 参数
-
c
-JComponent
创建UI委托的JComponent
- 结果
-
一个
ComponentUI
对象c
-
getBaseline
public int getBaseline(JComponent c, int width, int height)
返回基线。 基线从组件顶部开始测量。 此方法主要用于LayoutManager
s以沿其基线对齐组件。 返回值小于0表示此组件没有合理的基线,并且LayoutManager
s不应将此组件与其基线对齐。此方法返回-1。 具有有意义基线的子类应适当重写。
- 参数
-
c
-JComponent
正在申请基线 -
width
- 获取基线的宽度 -
height
- 获取基线的高度 - 结果
- 基线或值<0表示没有合理的基线
- 异常
-
NullPointerException
- 如果c
是null
-
IllegalArgumentException
- 如果宽度或高度<0 - 从以下版本开始:
- 1.6
- 另请参见:
-
JComponent.getBaseline(int,int)
-
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
返回一个枚举,指示组件的基线如何随大小的变化而变化。 此方法主要用于布局管理器和GUI构建器。此方法返回
BaselineResizeBehavior.OTHER
。 支持基线的子类应适当地覆盖。- 参数
-
c
-JComponent
返回基线调整大小的行为 - 结果
- 一个枚举,指示基线随组件大小的变化而变化的方式
- 异常
-
NullPointerException
- 如果c
是null
- 从以下版本开始:
- 1.6
- 另请参见:
-
JComponent.getBaseline(int, int)
-
getAccessibleChildrenCount
public int getAccessibleChildrenCount(JComponent c)
返回对象中可访问的子级数。 如果此对象的所有子项都实现Accessible
,则此方法应返回此对象的子项数。 UI可能希望覆盖它,如果它们在屏幕上显示可以被视为组件的区域,但实际组件不用于呈现这些区域。 注意:从v1.3开始,建议开发人员调用Component.AccessibleAWTComponent.getAccessibleChildrenCount()
而不是此方法。- 参数
-
c
-JComponent
获取可访问儿童的数量 - 结果
- 对象中可访问的子项数
- 另请参见:
-
getAccessibleChild(javax.swing.JComponent, int)
-
getAccessibleChild
public Accessible getAccessibleChild(JComponent c, int i)
返回对象的i
thAccessible
子项。 UI可能需要覆盖它,如果它们在屏幕上显示可以被视为组件的区域,但实际组件不用于呈现这些区域。注意:从v1.3开始,建议开发人员调用
Component.AccessibleAWTComponent.getAccessibleChild()
而不是此方法。- 参数
-
c
- 获取子对象的JComponent
-
i
- 从零开始的儿童指数 - 结果
-
i
thAccessible
对象的子项 - 另请参见:
-
getAccessibleChildrenCount(javax.swing.JComponent)
-
-