- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- javax.swing.text.BoxView
-
- javax.swing.text.FlowView
-
- All Implemented Interfaces:
-
SwingConstants
- 已知直接子类:
-
ParagraphView
public abstract class FlowView extends BoxView
一个试图将孩子流入某些部分受限空间的视图。 这可以用于构建像段落,页面等的东西。流程由以下功能组成。- 子视图的逻辑集合,用作形成物理视图的布局池。
- 将逻辑视图转换为物理(流)视图的策略。
- 制裁战略的制约因素。
- 物理结构,代表流。 这个视图的孩子是创建流的逻辑视图的一部分。
- 从以下版本开始:
- 1.3
- 另请参见:
-
View
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
FlowView.FlowStrategy
保持流动的物理形式的策略。
-
Field Summary
Fields Modifier and Type Field 描述 protected View
layoutPool
这些是表示此视图表示的元素的子元素的视图(转换为物理视图的逻辑视图)。protected int
layoutSpan
针对其创建流的默认约束。protected FlowView.FlowStrategy
strategy
保持流程更新的行为。-
Fields inherited from interface 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
-
Fields inherited from class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
-
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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)
设置视图的父级。-
Methods inherited from class 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
-
Methods inherited from class javax.swing.text.CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class 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
-
-
-
-
字段详细信息
-
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变量为空,则会创建一个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方法来重新构建流行。 如果此视图的高度发生变化(由框轴的首选大小决定),则会调用preferencesChanged。 所有这一切,执行超类的正常框布局。
-
calculateMinorAxisRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
计算沿短轴的要求。 这是通过调用getMinimumSpan,getPreferredSpan和getMaximumSpan来将请求转发到逻辑视图。- 重写:
-
calculateMinorAxisRequirements
的BoxView
- 参数
-
axis
- 正在研究的轴 -
r
-SizeRequirements
对象; 如果null
将创建一个 - 结果
-
新初始化的
SizeRequirements
对象 - 另请参见:
-
SizeRequirements
-
insertUpdate
public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
在该视图负责的位置发出通知。- 重写:
-
insertUpdate
中的View
- 参数
-
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)
在该视图负责的位置发出文档中已删除某些内容的通知。- 重写:
-
removeUpdate
在View
- 参数
-
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)
在该视图负责的位置向文档发出属性更改的通知。- 重写:
-
changedUpdate
的View
- 参数
-
changes
- 相关文件的更改信息 -
a
- 视图的当前分配 -
f
- 工厂用来重建如果视图有孩子 - 另请参见:
-
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
setParent
public void setParent(View parent)
设置视图的父级。 如果此视图还没有子loadChildren
则会重新实现此功能以提供超类行为以及调用loadChildren
方法。 孩子不应该加载在构造函数中,因为设置父Container
的行为可能会导致他们尝试搜索层次结构(例如获取主机Container
)。 如果此视图具有子loadChildren
(视图正从视图层次结构中的一个位置移动到另一个视图),则不会调用loadChildren
方法。- 重写:
-
setParent
在CompositeView
- 参数
-
parent
- the parent of the view,null
if none
-
-