模块  java.desktop
软件包  javax.swing.plaf

Class ComponentUI

    • 构造方法详细信息

      • 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. 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)
      • 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 xy被定义为相对于指定组件的坐标系。 虽然组件的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 - 如果 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()而不是此方法。
        参数
        c - JComponent获取可访问儿童的数量
        结果
        对象中可访问的子项数
        另请参见:
        getAccessibleChild(javax.swing.JComponent, int)
      • getAccessibleChild

        public Accessible getAccessibleChild​(JComponent c,
                                             int i)
        返回对象的i th Accessible子项。 UI可能需要覆盖它,如果它们在屏幕上显示可以被视为组件的区域,但实际组件不用于呈现这些区域。

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

        参数
        c - 获取子对象的 JComponent
        i - 从零开始的儿童指数
        结果
        i th Accessible对象的子项
        另请参见:
        getAccessibleChildrenCount(javax.swing.JComponent)