Module java.desktop
Package javax.swing.text

Class FlowView.FlowStrategy

java.lang.Object
javax.swing.text.FlowView.FlowStrategy
封装类:
FlowView

public static class FlowView.FlowStrategy extends Object
维护流程物理形式的策略。默认实现完全无状态,并且如果给定FlowView上的布局无效,则重新计算整个流程。可以通过子类化实现替代策略,并可能执行增量修复布局或替代断行行为。
自1.3版本起:
1.3
  • Constructor Details

    • FlowStrategy

      public FlowStrategy()
      构造一个FlowStrategy
  • Method Details

    • insertUpdate

      public void insertUpdate(FlowView fv, DocumentEvent e, Rectangle alloc)
      通知文档中在给定流视图负责的位置插入了某些内容。策略应更新适当的更改区域(这取决于用于修复的策略)。
      参数:
      fv - 流视图
      e - 与关联文档的更改信息
      alloc - 视图在插入点内的当前分配。如果视图尚未显示,则此值将为null。
      参见:
    • removeUpdate

      public void removeUpdate(FlowView fv, DocumentEvent e, Rectangle alloc)
      通知文档中在给定流视图负责的位置删除了某些内容。
      参数:
      fv - 流视图
      e - 与关联文档的更改信息
      alloc - 视图在插入点内的当前分配。
      参见:
    • changedUpdate

      public void changedUpdate(FlowView fv, DocumentEvent e, Rectangle alloc)
      来自文档的通知,指示此视图负责的位置的属性已更改。
      参数:
      fv - 包含更改的FlowView
      e - 描述对文档所做更改的DocumentEvent
      alloc - 视图的边界
      参见:
    • 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方法来填充行,直到可用跨度耗尽,遇到强制断行或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 - 视图将放置到的行
      返回:
      可用于表示当前流程片段的视图