JavaTM Platform
Standard Ed. 6

javax.swing.plaf
类 ComponentUI

java.lang.Object
  继承者 javax.swing.plaf.ComponentUI
直接已知子类:
ButtonUI, ColorChooserUI, ComboBoxUI, DesktopIconUI, DesktopPaneUI, FileChooserUI, InternalFrameUI, LabelUI, 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)
          返回对象的第 iAccessible 子对象。
 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
 

构造方法详细信息

ComponentUI

public ComponentUI()
单独的构造方法。(由子类构造方法调用,通常是隐式的)。

方法详细信息

installUI

public void installUI(JComponent c)
配置指定组件,使其适合外观。当 ComponentUI 实例将作为 UI 委托安装在指定组件上时,可调用此方法。此方法应该为外观完整地配置组件,包括以下方面:
  1. 在组件上安装用于颜色、字体、边框、图标、不透明性等方面的所有默认属性值。只要有可能,就 应该重写由客户端程序初始化的属性值。
  2. 如有必要,可在组件上安装一个 LayoutManager
  3. 将所需的所有子组件创建/添加到组件中。
  4. 在组件上创建/安装事件侦听器。
  5. 为了检测和适当响应组件属性更改,可在组件上创建/安装一个 PropertyChangeListener
  6. 在组件上安装键盘 UI(助记符、遍历等等)。
  7. 初始化任何适当的实例数据。

参数:
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 实例处于某种洁净状态(没有额外的侦听器、没有特定于外观的属性对象等等)。配置内容应该包括以下方面:
  1. 从组件中移除所有 UI 设置的边框。
  2. 从组件上移除所有 UI 设置的布局管理器。
  3. 从组件中移除所有 UI 添加的子组件。
  4. 从组件中移除所有 UI 添加的事件/属性侦听器。
  5. 从组件中移除所有 UI 安装的键盘 UI。
  6. 使所有已分配的实例数据对象无效,从而允许进行 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 对象是无状态的并由多个组件共享,则可以使用该参数
另请参见:
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 位置包含在指定组件外观的已定义形状中,则返回 truexy 都是相对于指定组件的坐标系统定义的。尽管组件的 bounds 被限制为一个矩形,但为了进行命中检测,此方法提供了在这些边界内定义非矩形形状的办法。

参数:
c - 将在其中查询 x,y 的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
x - 点的 x 坐标
y - 点的 y 坐标
另请参见:
JComponent.contains(int, int), Component.contains(int, int)

createUI

public static ComponentUI createUI(JComponent c)
返回指定组件的一个 UI 委托实例。每个子类都必须提供自己的静态 createUI 方法,该方法返回 UI 委托子类的一个实例。如果 UI 委托子类是无状态的,则该方法可以返回一个由多个组件共享的实例。如果 UI 委托是有状态的,则该方法应该为每个组件返回一个新实例。此方法的默认实现抛出一个错误,因为它永远都不应该被调用。


getBaseline

public int getBaseline(JComponent c,
                       int width,
                       int height)
返回基线。从组件的顶部测量基线。此方法主要供 LayoutManager 用来沿其基线对齐组件。小于 0 的返回值指示此组件不具有合理的基线以及 LayoutManager 不应在其基线上对齐此组件。

此方法返回 -1。具有有意义的基线的子类应该适当地进行重写。

参数:
c - 为其请求基线的 JComponent
width - 为其获取基线的宽度
height - 为其获取基线的高度
返回:
基线;如果没有合理的基线,则返回 < 0 的值
抛出:
NullPointerException - 如果 cnull
IllegalArgumentException - 如果宽度或高度 < 0
从以下版本开始:
1.6
另请参见:
JComponent.getBaseline(int,int)

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
返回一个枚举,指示组件的基线如何随大小的改变而发生更改。此方法主要供布局管理器和 GUI 生成器使用。

此方法返回 BaselineResizeBehavior.OTHER。支持基线的子类应该适当地进行重写。

参数:
c - 为其返回调整大小行为的 JComponent
返回:
一个枚举,指示基线如何随组件大小的改变而发生更改
抛出:
NullPointerException - 如果 cnull
从以下版本开始:
1.6
另请参见:
JComponent.getBaseline(int, int)

getAccessibleChildrenCount

public int getAccessibleChildrenCount(JComponent c)
返回对象中的可访问子对象数。如果此对象的所有子对象都实现 Accessible,那么此方法应返回此对象的子对象数。如果 UI 在可看作组件的屏幕上呈现一些区域,那么它们可能希望重写此方法,但实际组件并不用于呈现那些区域。 注:从 v1.3 开始,建议开发人员调用 Component.AccessibleAWTComponent.getAccessibleChildrenCount() 替代此方法。

返回:
该对象中可访问的子对象数
另请参见:
getAccessibleChild(javax.swing.JComponent, int)

getAccessibleChild

public Accessible getAccessibleChild(JComponent c,
                                     int i)
返回对象的第 iAccessible 子对象。如果 UI 在可看作组件的屏幕上呈现一些区域,那么它们可能需要重写此方法,但实际组件并不用于呈现那些区域。

注:从 v1.3 开始,建议开发人员调用 Component.AccessibleAWTComponent.getAccessibleChild() 替代此方法。

参数:
i - 子对象的从零开始的索引
返回:
对象的第 iAccessible 子对象
另请参见:
getAccessibleChildrenCount(javax.swing.JComponent)

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策