javax.swing.text

接口
异常
java.lang.Object
  继承者 javax.swing.text.View
      继承者 javax.swing.text.CompositeView
          继承者 javax.swing.text.BoxView
              继承者 javax.swing.text.FlowView
所有已实现的接口:
SwingConstants
直接已知子类:
ParagraphView

public abstract class FlowView
     
extends BoxView

试图将其子级流入某个部分受约束的空间的视图。此视图可用于构建段落、页面等。该流由以下几项功能组成。

  • 子视图的逻辑集合,该集合用作组成物理视图的布局池。
  • 将逻辑视图转换为物理(流动)视图的策略。
  • 要依靠其工作的策略约束。
  • 表示流的物理结构。此视图的子级位于为创建流而放置逻辑视图的片段的位置。

从以下版本开始:
1.3
另请参见:
View

嵌套类摘要
static class FlowView.FlowStrategy
          维护流的物理形式的策略。
 
字段摘要
protected  View layoutPool
          这些都是表示此视图表示的元素(要转换为物理视图的逻辑视图)的子元素的视图。
protected  int layoutSpan
          创建流所依靠的默认约束。
protected  FlowView.FlowStrategy strategy
          保持流更新的行为。
 
从类 javax.swing.text.View 继承的字段
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
从接口 javax.swing.SwingConstants 继承的字段
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
构造方法摘要
FlowView(Element elem, int axis)
          构造给定元素的 FlowView。
 
方法摘要
protected  SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
          计算沿辅轴的要求。
 void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
          发出通知,通知文档中此视图负责的某个位置的属性已更改。
protected abstract  View createRow()
          创建应在保持流中子级行值时使用的视图。
 int getFlowAxis()
          获取应沿其流入视图的轴。
 int getFlowSpan(int index)
          获取给定子索引流入的约束区域。
 int getFlowStart(int index)
          获取沿流轴的流区域开始位置。
protected  int getViewIndexAtPosition(int pos)
          获取此模型中表示给定位置的子视图索引。
 void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
          发出通知,通知在文档中此视图负责的某个位置已插入内容。
protected  void layout(int width, int height)
          布置子级。
protected  void loadChildren(ViewFactory f)
          加载初始化该视图的所有子级。
 void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
          发出通知,通知从文档中此视图负责的某个位置已移除内容。
 void setParent(View parent)
          设置此视图的父级。
 
从类 javax.swing.text.BoxView 继承的方法
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel
 
从类 javax.swing.text.CompositeView 继承的方法
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets
 
从类 javax.swing.text.View 继承的方法
append, breakView, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateChildren, updateLayout, viewToModel
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

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 在更新该流时调用此方法。可以通过为行约束提供不同的值而形成流。默认情况下,返回沿流轴的 insets 内的整个区域。

参数:
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 实例,表示在格式化进程中使用的逻辑视图。

覆盖:
CompositeView 中的 loadChildren
参数:
f - 视图工厂
另请参见:
CompositeView.setParent(javax.swing.text.View)

getViewIndexAtPosition

protected int getViewIndexAtPosition(int pos)
获取此模型中表示给定位置的子视图索引。

覆盖:
CompositeView 中的 getViewIndexAtPosition
参数:
pos - 位置,该值 >= 0
返回:
表示给定位置的视图的索引,如果没有视图表示该位置,则返回 -1

layout

protected void layout(int width,
                      int height)
布置子级。如果沿流轴的区域已改变,则布局将标记为无效,这样会导致沿框轴重新计算布局的超类行为。FlowStrategy.layout 方法将被调用以便相应地重建这些流行。如果此视图的高度改变(由沿框轴的首选大小确定),则调用 preferenceChanged。这一切做完后,将执行超类的正常框布局。

覆盖:
BoxView 中的 layout
参数:
width - 要按其布置的宽度,该值 >= 0。这是 inset 区域内的宽度。
height - 按其布置的高度,该值 >= 0。这是 inset 区域内的高度。

calculateMinorAxisRequirements

protected SizeRequirements calculateMinorAxisRequirements(int axis,
                                                          SizeRequirements r)
计算沿辅轴的要求。实现此方法,以便通过在其上调用 getMinimumSpan、getPreferredSpan 和 getMaximumSpan 将此请求转到逻辑视图。

覆盖:
BoxView 中的 calculateMinorAxisRequirements
参数:
axis - 所考察的轴
r - SizeRequirements 对象;如果为 null,将创建一个对象
返回:
新初始化的 SizeRequirements 对象
另请参见:
SizeRequirements

insertUpdate

public void insertUpdate(DocumentEvent changes,
                         Shape a,
                         ViewFactory f)
发出通知,通知在文档中此视图负责的某个位置已插入内容。

覆盖:
View 中的 insertUpdate
参数:
changes - 来自相关文档的更改信息
a - 视图的当前分配区域
f - 用于重建的工厂(如果该视图有子级)
另请参见:
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

removeUpdate

public void removeUpdate(DocumentEvent changes,
                         Shape a,
                         ViewFactory f)
发出通知,通知从文档中此视图负责的某个位置已移除内容。

覆盖:
View 中的 removeUpdate
参数:
changes - 来自相关文档的更改信息
a - 视图的当前分配区域
f - 用于重建的工厂(如果该视图有子级)
另请参见:
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

changedUpdate

public void changedUpdate(DocumentEvent changes,
                          Shape a,
                          ViewFactory f)
发出通知,通知文档中此视图负责的某个位置的属性已更改。

覆盖:
View 中的 changedUpdate
参数:
changes - 来自相关文档的更改信息
a - 视图的当前分配区域
f - 用于重建的工厂(如果该视图有子级)
另请参见:
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

setParent

public void setParent(View parent)
设置此视图的父级。重新实现此方法可提供超类行为,并可在此视图无子级的情况下调用 loadChildren 方法。不应在构造方法中加载子级,因为设置父级的动作可能引起它们试图沿层次结构向上搜索,例如,要获得承载 Container。如果此视图有子级(视图从视图层次结构中的一个位置移动到另一个位置),则不调用 loadChildren 方法。

覆盖:
CompositeView 中的 setParent
参数:
parent - 视图的父级,如果没有则为 null