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

Class ComponentView

  • 实现的所有接口
    SwingConstants
    已知直接子类:
    FormViewObjectView

    public class ComponentView
    extends View
    实现视图接口的组件装饰器。 整个元素用于表示组件。 这充当从仅显示的View实现到交互式轻量级组件的网关(即,它允许将组件嵌入到View层次结构中)。

    根据Component.getAlignmentY返回的值,相对于文本基线放置组件。 对于Swing组件,可以使用方法JComponent.setAlignmentY方便地设置此值。 例如,设置值0.75将导致75%的组件高于基线,25%的组件低于基线。

    通过确保在事件线程上完成所有组件访问,实现此类以执行在存在多个线程时正常工作所需的额外工作(例如,来自模型更改的异步通知)。

    使用的组件由createComponent方法的返回值确定。 此方法的默认实现是返回作为元素属性保存的组件(通过调用StyleConstants.getComponent)。 此行为的限制是组件不能由多个文本组件使用(即使用共享模型)。 子类可以通过实现createComponent来实现基于属性中包含的某种规范来实际创建组件,从而删除此约束。 html包中的ObjectView类是支持共享模型的多个组件视图的ComponentView实现的示例。

    • 构造方法详细信息

      • ComponentView

        public ComponentView​(Element elem)
        创建一个新的ComponentView对象。
        参数
        elem - 要装饰的元素
    • 方法详细信息

      • createComponent

        protected Component createComponent()
        创建与此视图关联的组件。 当确定需要新组件时,将调用此方法。 这可能是由于调用setParent或者是通知属性已更改而导致的。
        结果
        与此视图关联的组件
      • getComponent

        public final Component getComponent()
        获取与视图关联的组件。
        结果
        与视图关联的组件
      • getPreferredSpan

        public float getPreferredSpan​(int axis)
        确定此视图沿轴的首选跨度。 实现此方法是为了返回Component.getPreferredSize沿感兴趣的轴返回的值。
        Specified by:
        getPreferredSpan在课堂上 View
        参数
        axis - 可以是View.X_AXIS或View.Y_AXIS
        结果
        视图希望渲染到> = 0的范围。 通常情况下,视图会被告知渲染到返回的范围内,但不能保证。 父母可以选择调整视图大小或打破视图。
        异常
        IllegalArgumentException - 对于无效的轴
        另请参见:
        View.getPreferredSpan(int)
      • getMinimumSpan

        public float getMinimumSpan​(int axis)
        确定此视图沿轴的最小跨度。 实现此方法是为了返回Component.getMinimumSize沿感兴趣的轴返回的值。
        重写:
        getMinimumSpan在课堂上 View
        参数
        axis - 可以是View.X_AXIS或View.Y_AXIS
        结果
        视图希望渲染到> = 0的范围。 通常情况下,视图会被告知渲染到返回的范围内,但不能保证。 父母可以选择调整视图大小或打破视图。
        异常
        IllegalArgumentException - 对于无效的轴
        另请参见:
        View.getPreferredSpan(int)
      • getMaximumSpan

        public float getMaximumSpan​(int axis)
        确定此视图沿轴的最大跨度。 实现此方法是为了返回Component.getMaximumSize沿感兴趣的轴返回的值。
        重写:
        getMaximumSpan在课堂上 View
        参数
        axis - 可以是View.X_AXIS或View.Y_AXIS
        结果
        视图希望渲染到> = 0的范围。 通常情况下,视图会被告知渲染到返回的范围内,但不能保证。 父母可以选择调整视图大小或打破视图。
        异常
        IllegalArgumentException - 表示无效轴
        另请参见:
        View.getPreferredSpan(int)
      • getAlignment

        public float getAlignment​(int axis)
        确定此视图沿轴的所需对齐方式。 实现此目的是为了给出嵌入式组件的对齐。
        重写:
        getAlignment在课程 View
        参数
        axis - 可以是View.X_AXIS或View.Y_AXIS
        结果
        期望的对齐。 这应该是介于0.0和1.0之间的值,其中0表示原点处的对齐,1.0表示远离原点的完整跨度的对齐。 0.5的对齐将是视图的中心。
      • setParent

        public void setParent​(View p)
        设置子视图的父级。 父母在孩子身上调用它来告诉它父母是谁,让视图访问托管容器之类的东西。 执行超类行为,如果父视图参数为非null且尚未创建组件,则调用createComponent。 然后将嵌入式组件父级设置为getContainer返回的值。 如果父视图参数为null,则清除此视图,从而从其父视图中删除该组件。

        更改组件层次结构将触及组件锁定,这是View层次结构中不安全的一件事。 因此,如果在事件线程上,则立即执行此功能,或者如果从另一个线程调用(在异步更新的更改通知中),则在事件队列上排队。

        重写:
        setParent在课堂上 View
        参数
        p - 父母