- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- javax.swing.text.BoxView
-
- javax.swing.text.FlowView
-
- javax.swing.text.ParagraphView
-
- All Implemented Interfaces:
-
SwingConstants,TabExpander
- 已知直接子类:
-
ParagraphView
public class ParagraphView extends FlowView implements TabExpander
查看一个简单的换行段落,支持多种字体,颜色,组件,图标等。它基本上是一个带有边缘的垂直框。 盒子的内容是一排是特殊的水平盒子。 此视图创建一个视图集合,代表段落元素的子元素。 这些视图中的每一个都将直接放入行中,否则将breakView方法来尝试将视图划分成适合的部分。- 另请参见:
-
View
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.text.FlowView
FlowView.FlowStrategy
-
-
Field Summary
Fields Modifier and Type Field 描述 protected intfirstLineIndent第一行缩进,从左边插入。-
Fields inherited from class javax.swing.text.FlowView
layoutPool, layoutSpan, 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
-
-
构造方法摘要
构造方法 Constructor 描述 ParagraphView(Element elem)为给定元素构造一个ParagraphView。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 ViewbreakView(int axis, float len, Shape a)以给定长度在给定轴上打破此视图。protected SizeRequirementscalculateMinorAxisRequirements(int axis, SizeRequirements r)计算沿着短轴的段落的需要。voidchangedUpdate(DocumentEvent changes, Shape a, ViewFactory f)在该视图负责的位置向文档发出属性更改的通知。protected ViewcreateRow()创建一个View,应该用于在流中持有一行的孩子。protected intfindOffsetToCharactersInString(char[] string, int start)查找文档中的下一个字符,其中字符为string,从偏移start开始。protected booleanflipEastAndWestAtEnds(int position, Position.Bias bias)确定下一个视图放在哪个方向。floatgetAlignment(int axis)确定沿着轴的该视图的所需对准。intgetBreakWeight(int axis, float len)获得给定位置的重量。protected intgetClosestPositionTo(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet, int rowIndex, int x)返回最接近的模型位置为x。intgetFlowSpan(int index)为给定的子索引获取约束跨度。intgetFlowStart(int index)获取沿着流动轴线开始流动跨度的位置。protected ViewgetLayoutView(int index)返回给定的视图index。protected intgetLayoutViewCount()返回此视图负责的视图数。protected intgetNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)返回光标的下一个视觉位置,以东或西方向。protected floatgetPartialSize(int startOffset, int endOffset)返回startOffset和endOffset之间的视图使用的大小。protected floatgetTabBase()返回从中计算制表符的位置。protected TabSetgetTabSet()获取Tabset用于计算选项卡。floatnextTabStop(float x, int tabOffset)返回给定参考位置的下一个制表位置位置。voidpaint(Graphics g, Shape a)渲染使用给定的渲染表面和该表面上的区域。protected voidsetFirstLineIndent(float fi)设置第一行的缩进。protected voidsetJustification(int j)设置对齐的类型。protected voidsetLineSpacing(float ls)设置行距。protected voidsetPropertiesFromAttributes()从属性设置缓存的属性。-
Methods inherited from class javax.swing.text.BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, forwardUpdate, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel
-
Methods inherited from class javax.swing.text.CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets
-
Methods inherited from class javax.swing.text.FlowView
getFlowAxis, getViewIndexAtPosition, insertUpdate, layout, loadChildren, removeUpdate, setParent
-
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
-
-
-
-
构造方法详细信息
-
ParagraphView
public ParagraphView(Element elem)
为给定元素构造一个ParagraphView。- 参数
-
elem- 该视图负责的元素
-
-
方法详细信息
-
setJustification
protected void setJustification(int j)
设置对齐的类型。- 参数
-
j- 以下值之一:-
StyleConstants.ALIGN_LEFT -
StyleConstants.ALIGN_CENTER -
StyleConstants.ALIGN_RIGHT
-
-
setLineSpacing
protected void setLineSpacing(float ls)
设置行距。- 参数
-
ls- 该值是线高的因素
-
setFirstLineIndent
protected void setFirstLineIndent(float fi)
设置第一行的缩进。- 参数
-
fi- 分数值
-
setPropertiesFromAttributes
protected void setPropertiesFromAttributes()
从属性设置缓存的属性。
-
getLayoutViewCount
protected int getLayoutViewCount()
返回此视图负责的视图数。 该段的子视图是用于排列表示子元素的View的块的行。 这是平铺在二维中的视图数,应等于该视图负责的元素的子元素数。- 结果
-
这
ParagraphView负责的意见的数量
-
getLayoutView
protected View getLayoutView(int index)
返回给定的视图index。 该段的子视图是用于排列表示子元素的Views的各Views。 此方法返回负责子元素索引(断开之前)的视图。 这些是从工厂生产的(用于表示子元素)并用于布局的视图。- 参数
-
index- 所需视图的index - 结果
-
视图在
index
-
getNextNorthSouthVisualPositionFrom
protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException返回光标的下一个视觉位置,以东或西方向。 被CompositeView于CompositeView。- 重写:
-
getNextNorthSouthVisualPositionFrom在CompositeView - 参数
-
pos- 进入模型的位置 -
b-Position.Bias.Forward或Position.Bias.Backward -
a- 要分配的区域 -
direction-SwingConstants.NORTH或SwingConstants.SOUTH -
biasRet- 包含在此方法中检查的偏差的数组 - 结果
- 模型中位于下一个位置视觉位置的位置
- 异常
-
BadLocationException- 对于文档模型中的错误位置 - 另请参见:
-
CompositeView.getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
-
getClosestPositionTo
protected int getClosestPositionTo(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet, int rowIndex, int x) throws BadLocationException返回最接近的模型位置为x。rowIndex给出对应于应该查看的视图的索引。- 参数
-
pos- 进入模型的位置 -
b -
a- 要分配的区域 -
direction- 以下值之一:-
SwingConstants.NORTH -
SwingConstants.SOUTH
-
-
biasRet- 包含在此方法中检查的偏差的数组 -
rowIndex- 视图的索引 -
x- 感兴趣的x坐标 - 结果
-
最接近的模型位置为
x - 异常
-
BadLocationException- 如果遇到错误的位置
-
flipEastAndWestAtEnds
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)确定下一个视图放在哪个方向。 考虑索引号为View。 通常,View放置,以便EAST的View将处于索引n + 1,而WEST的View将处于索引n-1。在某些情况下,例如具有双向文本,可能的是,EAST的View不在索引n + 1,而是索引n-1,或者WEST的View不在索引n-1,而是索引n + 1。在这种情况下,方法将返回true,表示View以降序排列。如果文本从右到左放置在位置,则返回true,否则为false。
- 重写:
-
flipEastAndWestAtEnds在BoxView - 参数
-
position- 进入模型的位置 -
bias-Position.Bias.Forward或Position.Bias.Backward - 结果
- 如果文本被放置在位置左侧,否则为false,则为true。
-
getFlowSpan
public int getFlowSpan(int index)
为给定的子索引获取约束跨度。- 重写:
-
getFlowSpan在FlowView - 参数
-
index- 要查询的视图的索引 - 结果
-
给定视图的约束跨度为
index - 从以下版本开始:
- 1.3
- 另请参见:
-
FlowView.getFlowStart(int)
-
getFlowStart
public int getFlowStart(int index)
获取沿着流动轴线开始流动跨度的位置。- 重写:
-
getFlowStart在FlowView - 参数
-
index- 要查询的视图的索引 - 结果
-
给定视图的位置为
index - 从以下版本开始:
- 1.3
- 另请参见:
-
FlowView.getFlowSpan(int)
-
createRow
protected View createRow()
创建一个View,应该用于在流中保存一行的孩子。
-
nextTabStop
public float nextTabStop(float x, int tabOffset)返回给定参考位置的下一个制表位置位置。 该视图实现标签坐标系统,并在布局过程中调用getTabbedSpan上的逻辑子getTabbedSpan,以确定孩子的期望跨度。 逻辑上的孩子可以将它们的扩展名向上扩展到知道如何扩展标签的段落。LabelView是将其选项卡扩展需求向上委托给该段落的视图的示例。这是为了尝试在段落元素的属性集中找到一个
TabSet。 如果找到,将使用其设置,否则将提供默认扩展。 标签扩展的基本位置是最近分配的段落(这是孩子的布局基于什么)的左侧插入。- Specified by:
-
nextTabStop在接口TabExpander - 参数
-
x- X参考位置 -
tabOffset- 标签出现在> = 0的文本流内的位置 - 结果
- 标签展开的尾端> = 0
- 另请参见:
-
TabSet,TabStop,LabelView
-
getTabSet
protected TabSet getTabSet()
获取Tabset用于计算选项卡。- 结果
-
TabSet
-
getPartialSize
protected float getPartialSize(int startOffset, int endOffset)返回startOffset和endOffset之间的视图使用的大小。 如果子视图实现TabableView接口,则使用getPartialView计算大小。 如果需要一个大小,并且View没有实现TabableView接口,preferredSpan将使用preferredSpan。- 参数
-
startOffset- 起始文档offset> = 0 -
endOffset- 结束文档offset> = startOffset - 结果
- 大小> = 0
-
findOffsetToCharactersInString
protected int findOffsetToCharactersInString(char[] string, int start)在string找到一个字符的文档中的下一个字符,从偏移start开始。 如果没有找到字符,则返回-1。- 参数
-
string- 字符串 -
start- 在模型中开始> = 0 - 结果
- 文档偏移量,如果没有找到字符,则为-1
-
getTabBase
protected float getTabBase()
返回从中计算制表符的位置。- 结果
- 其中选项卡从中计算
-
paint
public void paint(Graphics g, Shape a)
渲染使用给定的渲染表面和该表面上的区域。 这是为了在标签计算的基础坐标之后委托给超类。- 重写:
-
paint在BoxView - 参数
-
g- 要使用的渲染表面 -
a- 要分配的区域 - 另请参见:
-
View.paint(java.awt.Graphics, java.awt.Shape)
-
getAlignment
public float getAlignment(int axis)
确定沿着轴的该视图的所需对准。 这被实现为沿着y轴对准到第一行的中心,并且沿着x轴的默认值。- 重写:
-
getAlignment在BoxView - 参数
-
axis- 可以是View.X_AXIS或View.Y_AXIS - 结果
- 所需的对齐。 这应该是0.0和1.0之间的值,其中0表示原点对齐,1.0表示与原点的全跨距对齐。 0.5的对齐将是视图的中心。
-
breakView
public View breakView(int axis, float len, Shape a)
以给定长度在给定轴上打破此视图。ParagraphView实例只能沿Y_AXIS,只有len是第一行之后。- 参数
-
axis- 可以是View.X_AXIS或View.Y_AXIS -
len- 指定沿着给定轴> = 0的潜在断点 -
a- 视图的当前分配 - 结果
- 视图的片段代表给定的跨度,如果视图可以被破坏; 如果视图不支持破坏行为,则返回视图本身
- 另请参见:
-
View.breakView(int, int, float, float)
-
getBreakWeight
public int getBreakWeight(int axis, float len)获得给定位置的重量。ParagraphView实例只能沿着Y_AXIS,只有len是在第一行之后。 如果长度小于一行,则返回值为BadBreakWeight。- 参数
-
axis- 可以是View.X_AXIS或View.Y_AXIS -
len- 指定需要潜在中断的位置> = 0 - 结果
-
一个表示这里打破吸引力的值
GoodBreakWeight或BadBreakWeight - 另请参见:
-
View.getBreakWeight(int, float, float)
-
calculateMinorAxisRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
计算沿着短轴的段落的需要。这使用超类的大小要求,修改为考虑相邻视图边缘的不可破坏区域。 这种视图的最小尺寸要求应不小于所有相邻碎片的总和。
如果
axis参数既不是View.X_AXIS也不是View.Y_AXIS,则抛出IllegalArgumentException。 如果r参数为null,则会创建一个新的SizeRequirements对象,否则返回提供的SizeRequirements对象。- 重写:
-
calculateMinorAxisRequirements在FlowView - 参数
-
axis- 短轴 -
r- 输入SizeRequirements对象 - 结果
-
新的或调整后的
SizeRequirements对象 - 异常
-
IllegalArgumentException- 如果axis参数无效 - 另请参见:
-
SizeRequirements
-
changedUpdate
public void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
在该视图负责的位置向文档发出属性更改的通知。- 重写:
-
changedUpdate中的FlowView - 参数
-
changes- 相关文件中的更改信息 -
a- 视图的当前分配 -
f- 工厂用来重建如果视图有孩子 - 另请参见:
-
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
-