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

Class FlowView.FlowStrategy

  • Enclosing class:
    FlowView

    public static class FlowView.FlowStrategyextends Object
    维持流动的物理形式的策略。 默认实现是完全无状态的,如果布局在给定的FlowView上无效,则重新计算整个流。 替代策略可以通过子类化来实现,并且可以对布局或替代破坏行为执行增量修复。
    从以下版本开始:
    1.3
    • 构造方法详细信息

      • FlowStrategy

        public FlowStrategy()
    • 方法详细信息

      • getLogicalView

        protected View getLogicalView​(FlowView fv)
        此方法使流策略可以访问FlowView的逻辑视图。
        参数
        fv - FlowView
        结果
        FlowView的逻辑视图
      • layout

        public void layout​(FlowView fv)
        更新给定FlowView上的流。 默认情况下,这会导致重建所有行(子视图)以匹配每行的给定约束。 这由FlowView.layout调用以更新流中的子视图。
        参数
        fv - 要重排的视图
      • layoutRow

        protected int layoutRow​(FlowView fv,                        int rowIndex,                        int pos)
        创建一行适合行的布局范围的视图。 这由布局方法调用。 实现此方法是通过重复调用createView方法来填充行,直到可用的span已用尽,遇到强制中断或createView方法返回null。 如果剩余的跨度耗尽,将调用adjustRow方法对行进行调整以尝试使其适合给定的跨度。
        参数
        fv - 流程视图
        rowIndex - 要用视图填充的行的索引。 输入时假定该行为空。
        pos - 此视图元素的子元素中的当前位置。
        结果
        开始下一行的位置
      • adjustRow

        protected void adjustRow​(FlowView fv,                         int rowIndex,                         int desiredSpan,                         int x)
        如果可能,调整给定行以适合布局范围。 默认情况下,这将尝试找到最接近行末的最高断裂重量。 如果遇到强制中断,则中断将定位在那里。
        参数
        fv - 流程视图
        rowIndex - 要调整到当前布局范围的行。
        desiredSpan - 当前布局范围> = 0
        x - 地点r的起始地址。
      • createView

        protected View createView​(FlowView fv,                          int startOffset,                          int spanLeft,                          int rowIndex)
        创建一个可用于表示当前流程的视图。 这可以是逻辑视图中的整个视图,也可以是逻辑视图的片段。
        参数
        fv - 持有流的视图
        startOffset - 正在创建的视图的起始位置
        spanLeft - 填补行的左边距离
        rowIndex - 视图将放入的行
        结果
        可用于表示当前流程的视图