Module java.desktop
Package javax.swing.text

Class FlowView

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

public abstract class FlowView extends BoxView
试图将其子项流动到某些部分受限空间的视图。这可用于构建诸如段落、页面等内容。流动由以下功能组成。
  • 一组逻辑子视图,用作布局池,从中形成物理视图。
  • 将逻辑视图转换为物理(流动)视图的策略。
  • 策略工作的约束。
  • 代表流动的物理结构。此视图的子项是将逻辑视图的各部分放置在其中以创建流动的位置。
自版本:
1.3
参见:
  • Field Details

    • layoutSpan

      protected int layoutSpan
      创建流动时使用的默认约束。
    • layoutPool

      protected View layoutPool
      这些是表示此视图所代表的元素的子元素的视图(要将逻辑视图转换为物理视图)。这些不是直接的子项。这些要么直接放入行中,要么用于将其分解为更小的块,以形成物理视图。
    • strategy

      protected FlowView.FlowStrategy strategy
      保持流动更新的行为。默认情况下,这是 FlowView 的所有实例共享的单例(FlowStrategy 是无状态的)。子类可以创建替代策略,该策略可能保持状态。
  • Constructor Details

    • FlowView

      public FlowView(Element elem, int axis)
      为给定元素构造 FlowView。
      参数:
      elem - 此视图负责的元素
      axis - 可以是 View.X_AXIS 或 View.Y_AXIS
  • Method Details

    • getFlowAxis

      public int getFlowAxis()
      获取应该流动视图的轴。默认情况下,这将是垂直于流动行的轴(默认流动行本身的轴)。这通常由 FlowStrategy 使用。
      返回:
      应该流动视图的轴
    • getFlowSpan

      public int getFlowSpan(int index)
      获取给定子索引的流动约束跨度。在更新流动时,FlowStrategy 调用此方法。通过为行约束提供不同的值,可以塑造流动。默认情况下,返回流动轴上内部间距内的整个跨度。
      参数:
      index - 正在更新的行的索引。此值应为 >= 0 且 < getViewCount()。
      返回:
      给定子索引的流动约束跨度
      参见:
    • getFlowStart

      public int getFlowStart(int index)
      获取流动跨度将开始的流动轴上的位置。在更新流动时,FlowStrategy 调用此方法。通过为行约束提供不同的值,可以塑造流动。
      参数:
      index - 正在更新的行的索引。此值应为 >= 0 且 < getViewCount()。
      返回:
      流动跨度将开始的流动轴上的位置
      参见:
    • createRow

      protected abstract View createRow()
      创建应用于在流中保存一行子项的视图。在更新流动的过程中添加或删除新子项(即添加或删除行)时,FlowStrategy 调用此方法。
      返回:
      应用于在流中保存一行子项的视图
    • loadChildren

      protected void loadChildren(ViewFactory f)
      加载所有子项以初始化视图。此方法由 setParent 方法调用。重新实现此方法以不直接加载任何子项(因为它们在格式化过程中创建)。如果 layoutPool 变量为 null,则创建 LogicalView 的实例,以表示在格式化过程中使用的逻辑视图。
      覆盖:
      loadChildren 在类 CompositeView
      参数:
      f - 视图工厂
      参见:
    • 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 对象
      参见:
    • insertUpdate

      public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
      通知文档中插入了此视图负责的位置的属性发生更改。
      覆盖:
      insertUpdate 在类 View
      参数:
      changes - 关联文档的更改信息
      a - 视图的当前分配
      f - 如果视图有子项,则用于重建的工厂
      参见:
    • removeUpdate

      public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
      通知文档中删除了此视图负责的位置的内容。
      覆盖:
      removeUpdate 在类 View
      参数:
      changes - 关联文档的更改信息
      a - 视图的当前分配
      f - 如果视图有子项,则用于重建的工厂
      参见:
    • changedUpdate

      public void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
      通知文档中属性在此视图负责的位置发生更改。
      覆盖:
      changedUpdate 在类 View
      参数:
      changes - 关联文档中的更改信息
      a - 视图的当前分配
      f - 如果视图有子元素,则用于重建的工厂
      参见: