- 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
所有UI委托对象的基类在Swing可插拔外观和体系结构中。 用于Swing组件的UI委托对象负责实现依赖于外观的组件的各个方面。JComponent
类调用此类的方法,以便委派可能因安装外观而有所不同的操作(绘画,布局计算等)。 客户端程序不应直接调用此类的方法。- 另请参见:
-
JComponent
,UIManager
-
-
构造方法摘要
构造方法 Constructor 描述 ComponentUI()
唯一的构造函数。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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委托是时候绘制指定的组件。
-
-
-
方法详细信息
-
installUI
public void installUI(JComponent c)
适当地配置指定的组件的外观和感觉。 当正在安装ComponentUI
实例作为指定组件上的UI委托时,将调用此方法。 该方法应该完全配置组件的外观,包括以下内容:- 为组件上的颜色,字体,边框,图标,不透明度等安装默认属性值。 只要有可能,由客户端程序初始化的属性值不应该被重写。
- 如有必要,请在组件上安装
LayoutManager
。 - 创建/添加任何所需的子组件到组件。
- 在组件上创建/安装事件监听器。
- 在组件上创建/安装
PropertyChangeListener
,以便适当地检测和响应组件属性的更改。 - 在组件上安装键盘UI(助记符,遍历等)。
- 初始化任何适当的实例数据。
- 参数
-
c
- 正在安装此UIc
的组件 - 另请参见:
-
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。
- 对任何分配的实例数据对象进行空白以允许GC。
- 参数
-
c
- 从中删除此UIc
的组件; 这个参数经常被忽略,但如果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
- 一个用于创建UI代表的JComponent
- 结果
-
一个
ComponentUI
对象为c
-
getBaseline
public int getBaseline(JComponent c, int width, int height)
返回基线。 基线是从组件的顶部测量的。 该方法主要用于LayoutManager
以使组件沿其基线对齐。 返回值小于0表示此组件没有合理的基线,并且LayoutManager
不应该将该组件对准其基线。此方法返回-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
第Accessible
个子对象。 如果屏幕上显示可以被视为组件的区域,UI可能需要重写,但实际组件不用于显示这些区域。注意:从v1.3开始,建议开发者调用
Component.AccessibleAWTComponent.getAccessibleChild()
而不是这种方法。- 参数
-
c
- 一个JComponent
为其获取一个子对象 -
i
- 基于零的儿童索引 - 结果
-
对象的
i
第Accessible
小孩 - 另请参见:
-
getAccessibleChildrenCount(javax.swing.JComponent)
-
-