- 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 int
firstLineIndent
第一行缩进,从左边插入。-
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 方法 描述 View
breakView(int axis, float len, Shape a)
以给定长度在给定轴上打破此视图。protected SizeRequirements
calculateMinorAxisRequirements(int axis, SizeRequirements r)
计算沿着短轴的段落的需要。void
changedUpdate(DocumentEvent changes, Shape a, ViewFactory f)
在该视图负责的位置向文档发出属性更改的通知。protected View
createRow()
创建一个View
,应该用于在流中持有一行的孩子。protected int
findOffsetToCharactersInString(char[] string, int start)
查找文档中的下一个字符,其中字符为string
,从偏移start
开始。protected boolean
flipEastAndWestAtEnds(int position, Position.Bias bias)
确定下一个视图放在哪个方向。float
getAlignment(int axis)
确定沿着轴的该视图的所需对准。int
getBreakWeight(int axis, float len)
获得给定位置的重量。protected int
getClosestPositionTo(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet, int rowIndex, int x)
返回最接近的模型位置为x
。int
getFlowSpan(int index)
为给定的子索引获取约束跨度。int
getFlowStart(int index)
获取沿着流动轴线开始流动跨度的位置。protected View
getLayoutView(int index)
返回给定的视图index
。protected int
getLayoutViewCount()
返回此视图负责的视图数。protected int
getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
返回光标的下一个视觉位置,以东或西方向。protected float
getPartialSize(int startOffset, int endOffset)
返回startOffset
和endOffset
之间的视图使用的大小。protected float
getTabBase()
返回从中计算制表符的位置。protected TabSet
getTabSet()
获取Tabset
用于计算选项卡。float
nextTabStop(float x, int tabOffset)
返回给定参考位置的下一个制表位置位置。void
paint(Graphics g, Shape a)
渲染使用给定的渲染表面和该表面上的区域。protected void
setFirstLineIndent(float fi)
设置第一行的缩进。protected void
setJustification(int j)
设置对齐的类型。protected void
setLineSpacing(float ls)
设置行距。protected void
setPropertiesFromAttributes()
从属性设置缓存的属性。-
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)
-
-