- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- javax.swing.text.BoxView
-
- javax.swing.text.FlowView
-
- javax.swing.text.ParagraphView
-
- 实现的所有接口
-
SwingConstants
,TabExpander
- 已知直接子类:
-
ParagraphView
public class ParagraphView extends FlowView implements TabExpander
一个简单的换行段落的视图,支持多种字体,颜色,组件,图标等。它基本上是一个垂直框,周围有一个边距。 盒子的内容是一堆特殊的水平盒子。 此视图创建一组视图,表示段落元素的子元素。 如果它们适合,则将这些视图中的每一个直接放入一行,否则调用breakView
方法以尝试将视图雕刻成适合的片段。- 另请参见:
-
View
-
-
嵌套类汇总
-
嵌套类/接口声明在类 javax.swing.text.FlowView
FlowView.FlowStrategy
-
-
字段汇总
字段 变量和类型 字段 描述 protected int
firstLineIndent
从左边插入第一行的缩进。-
声明的属性在类 javax.swing.text.FlowView
layoutPool, layoutSpan, strategy
-
声明的属性在类 javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
-
Fields declared in 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
-
-
构造方法摘要
构造方法 构造器 描述 ParagraphView(Element elem)
为给定元素构造ParagraphView
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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()
从属性设置缓存属性。-
声明方法的类 javax.swing.text.FlowView
getFlowAxis, getViewIndexAtPosition, insertUpdate, layout, loadChildren, removeUpdate
-
声明方法的类 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
-
声明方法的类 javax.swing.text.CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent
-
声明方法的类 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
- 以fi
为单位的值
-
setPropertiesFromAttributes
protected void setPropertiesFromAttributes()
从属性设置缓存属性。
-
getLayoutViewCount
protected int getLayoutViewCount()
返回此视图负责的视图数。 段落的子视图是用于排列代表子元素的View
的片段的行。 这是以二维方式平铺的视图数,应该等于此视图负责的元素的子元素数。- 结果
-
此
ParagraphView
负责的观看次数
-
getLayoutView
protected View getLayoutView(int index)
返回给定index
的视图。 段落的子视图是用于排列代表子元素的Views
片段的行。 此方法返回负责子元素索引的视图(在中断之前)。 这些是从工厂生成的视图(表示子元素)并用于布局。- 参数
-
index
- 所需视图的index
- 结果
-
查看
index
-
getNextNorthSouthVisualPositionFrom
protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
返回光标的下一个视觉位置,在东或西方向。 被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)
确定下一个视图的放置方向。 考虑索引为n的View
。 通常情况下,View
是View
的,因此EAST的View
将在索引n + 1处,而到WEST的View
将在索引n - 1处。在某些情况下,例如使用双向文本,有可能View
到EAST不在索引n + 1,而是在索引n - 1,或者View
到WEST不在索引n - 1,但是索引n + 1.在这种情况下这方法将返回true,表示View
s按降序排列。如果文本从右到左布置在位置,则返回true,否则返回false。
- 重写:
-
flipEastAndWestAtEnds
在类BoxView
- 参数
-
position
- 进入模型的位置 -
bias
-Position.Bias.Forward
或Position.Bias.Backward
- 结果
- 如果文本从右到左布置在位置,则为true,否则为false。
-
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
以确定所需的子项跨度。 逻辑子项可以将其选项卡扩展向上委派给知道如何扩展选项卡的段落。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
。- 参数
-
startOffset
- 起始文档偏移> = 0 -
endOffset
- 结束文档偏移> = 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)
-
-