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

Class FlowView

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

    public abstract class FlowView
    extends BoxView
    试图将其子项传递到某个部分受限空间的视图。 这可用于构建段落,页面等内容。流程由以下功能组成。
    • 一组逻辑子视图,用作构成物理视图的布局池。
    • 将逻辑视图转换为物理(流动)视图的策略。
    • 制定战略的制约因素。
    • 物理结构,代表流动。 此视图的子项是放置逻辑视图以创建流的位置。
    从以下版本开始:
    1.3
    另请参见:
    View
    • 字段详细信息

      • layoutSpan

        protected int layoutSpan
        创建流的默认约束。
      • layoutPool

        protected View layoutPool
        这些视图表示此视图表示的元素的子元素(要转换为物理视图的逻辑视图)。 这些不是这种观点的直接儿童。 这些要么直接放入行中,要么用于分成较小的块,以形成物理视图。
      • strategy

        protected FlowView.FlowStrategy strategy
        保持流程更新的行为。 默认情况下,这是由FlowView的所有实例共享的单例(FlowStrategy是无状态的)。 子类可以创建一个可以保持状态的替代策略。
    • 构造方法详细信息

      • FlowView

        public FlowView​(Element elem,
                        int axis)
        为给定元素构造FlowView。
        参数
        elem - 此视图负责的元素
        axis - 可以是View.X_AXIS或View.Y_AXIS
    • 方法详细信息

      • getFlowAxis

        public int getFlowAxis()
        获取视图应沿其流动的轴。 默认情况下,这将是与流动行平铺的轴正交的轴(默认流动行本身的轴)。 这通常由FlowStrategy
        结果
        视图应沿其流动的轴
      • getFlowSpan

        public int getFlowSpan​(int index)
        获取约束范围以针对给定的子索引进行流动。 FlowStrategy在更新流程时会调用它。 可以通过为行约束提供不同的值来对流进行整形。 默认情况下,返回沿流轴的插入内部的整个跨度。
        参数
        index - 正在更新的行的索引。 这应该是值> = 0和<getViewCount()。
        结果
        针对给定子索引流动的约束跨度
        另请参见:
        getFlowStart(int)
      • getFlowStart

        public int getFlowStart​(int index)
        获取流量跨度将从流轴开始的位置。 FlowStrategy在更新流程时会调用它。 可以通过为行约束提供不同的值来对流进行整形。
        参数
        index - 正在更新的行的索引。 这应该是值> = 0和<getViewCount()。
        结果
        沿着流动轴线的位置,流动跨度将从该位置开始
        另请参见:
        getFlowSpan(int)
      • createRow

        protected abstract View createRow()
        创建一个视图,该视图应该用于在流中保存一行符合条件的子行。 在更新流程的过程中添加或删除新子项(即添加或删除行)时,FlowStrategy会调用此方法。
        结果
        一个视图,应该用于在流中保存一行值得孩子的行
      • loadChildren

        protected void loadChildren​(ViewFactory f)
        加载所有子项以初始化视图。 这由setParent方法调用。 这是重新实现的,不直接加载任何子项(因为它们是在格式化过程中创建的)。 如果layoutPool变量为null,则会创建一个LogicalView实例来表示格式化过程中使用的逻辑视图。
        重写:
        loadChildren在类 CompositeView
        参数
        f - 查看工厂
        另请参见:
        CompositeView.setParent(javax.swing.text.View)
      • getViewIndexAtPosition

        protected int getViewIndexAtPosition​(int pos)
        获取表示模型中给定位置的子视图索引。
        重写:
        getViewIndexAtPosition在类 CompositeView
        参数
        pos - 位置> = 0
        结果
        表示给定位置的视图的索引,如果没有视图表示该位置,则返回-1
      • layout

        protected void layout​(int width,
                              int height)
        安排好孩子们。 如果沿流轴的跨度已更改,则布局将标记为无效,这将导致超类行为沿着框轴重新计算布局。 将调用FlowStrategy.layout方法以根据需要重建流行。 如果此视图的高度发生变化(由沿框轴的首选大小确定),则会调用preferenceChanged。 完成所有这些后,将执行超类的常规框布局。
        重写:
        layout在类 BoxView
        参数
        width - 布局宽度> = 0.这是插入区域内的宽度。
        height - 布局高度> = 0这是插入区域内的高度。
      • calculateMinorAxisRequirements

        protected SizeRequirements calculateMinorAxisRequirements​(int axis,
                                                                  SizeRequirements r)
        沿短轴计算要求。 实现此方法是通过在其上调用getMinimumSpan,getPreferredSpan和getMaximumSpan将请求转发到逻辑视图。
        重写:
        calculateMinorAxisRequirements在课堂上 BoxView
        参数
        axis - 正在研究的轴
        r - SizeRequirements对象; 如果null将创建一个
        结果
        新初始化的 SizeRequirements对象
        另请参见:
        SizeRequirements