©
This document uses PHP Chinese website manual Release
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.swing.text.View javax.swing.text.CompositeView javax.swing.text.BoxView
public class BoxView
一个视图,它通过沿某轴平铺将其子级排列到框形状中。此框与 TeX 中的框有些类似,它需要处理子级的对齐方式,还要考虑到子级的灵活性等等。这是一个构造块,可用于表示类似线、段落、列表、列、页面等的集合。子级平铺时沿用的轴被视为主轴。与它垂直的轴为辅轴。
每个轴的布局分别由 layoutMajorAxis
和 layoutMinorAxis
方法单独处理。子类可通过重新实现这些方法来更改该布局算法。需要时将根据是否有缓存布局信息以及此缓存是否有效来调用这些方法。通常情况下,当沿轴的给定大小发生更改,或者调用了 layoutChanged
对布局强制更新时,此方法被调用。layoutChanged
方法使缓存布局信息无效(如果有)。发布到父视图的要求是通过 calculateMajorAxisRequirements
和 calculateMinorAxisRequirements
进行计算的。如果布局算法已更改,这些方法按道理都需要重新实现。
字段摘要 |
---|
从类 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 |
构造方法摘要 | |
---|---|
BoxView(Element elem,
int axis)
构造一个 BoxView 。 |
方法摘要 | |
---|---|
protected void |
baselineLayout(int targetSpan,
int axis,
int[] offsets,
int[] spans)
在给定的 targetSpan 区域,即我们将使用的区域的宽度(或高度),计算每个子视图在此 BoxView 中的位置和扩展。 |
protected SizeRequirements |
baselineRequirements(int axis,
SizeRequirements r)
通过检查每个子视图的大小计算此 BoxView 的大小要求。 |
protected SizeRequirements |
calculateMajorAxisRequirements(int axis,
SizeRequirements r)
计算主轴 axis 的大小要求。 |
protected SizeRequirements |
calculateMinorAxisRequirements(int axis,
SizeRequirements r)
计算辅轴 axis 的大小要求。 |
protected void |
childAllocation(int index,
Rectangle alloc)
为子视图分配一个区域。 |
protected boolean |
flipEastAndWestAtEnds(int position,
Position.Bias bias)
确定下一个视图的放置方向。 |
protected void |
forwardUpdate(DocumentEvent.ElementChange ec,
DocumentEvent e,
Shape a,
ViewFactory f)
将给定的 DocumentEvent 转发给需要接收模型更改通知的子视图。 |
float |
getAlignment(int axis)
确定此视图沿某个轴所需的调整值。 |
int |
getAxis()
获取平铺轴属性。 |
Shape |
getChildAllocation(int index,
Shape a)
获取给定子视图的分配。 |
int |
getHeight()
返回框的当前高度。 |
float |
getMaximumSpan(int axis)
确定此视图沿某个轴的最大区域。 |
float |
getMinimumSpan(int axis)
确定此视图沿某个轴的最小区域。 |
protected int |
getOffset(int axis,
int childIndex)
获取特定子级当前布局的偏移量。 |
float |
getPreferredSpan(int axis)
确定此视图沿某个轴的首选区域。 |
int |
getResizeWeight(int axis)
获取调整的权重。 |
protected int |
getSpan(int axis,
int childIndex)
获取特定子级的当前布局的区域。 |
protected View |
getViewAtPoint(int x,
int y,
Rectangle alloc)
获取给定坐标处的子视图。 |
int |
getWidth()
返回框的当前宽度。 |
protected boolean |
isAfter(int x,
int y,
Rectangle innerAlloc)
确定一个点是否位于分配区域的后面。 |
protected boolean |
isAllocationValid()
子级分配是否仍有效。 |
protected boolean |
isBefore(int x,
int y,
Rectangle innerAlloc)
确定一个点是否位于分配区域的前面。 |
protected boolean |
isLayoutValid(int axis)
确定沿给定轴的布局是否有效。 |
protected void |
layout(int width,
int height)
执行对框的布局 |
void |
layoutChanged(int axis)
使沿某轴的布局变得无效。 |
protected void |
layoutMajorAxis(int targetSpan,
int axis,
int[] offsets,
int[] spans)
执行对框的主轴的布局(即它所代表的轴)。 |
protected void |
layoutMinorAxis(int targetSpan,
int axis,
int[] offsets,
int[] spans)
执行对框的辅轴的布局(即与它所代表的轴垂直的轴)。 |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b)
提供从文档模型的坐标空间到映射到它的视图的坐标空间的映射。 |
void |
paint(Graphics g,
Shape allocation)
使用该面给定的呈现面和区域呈现 BoxView 。 |
protected void |
paintChild(Graphics g,
Rectangle alloc,
int index)
绘制一个子级。 |
void |
preferenceChanged(View child,
boolean width,
boolean height)
这由子级来调用,以表明它的首选项区域已更改。 |
void |
replace(int index,
int length,
View[] elems)
使布局变得无效并调整所需/分配的缓存大小。 |
void |
setAxis(int axis)
设置平铺轴属性。 |
void |
setSize(float width,
float height)
设置视图的大小。 |
int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] bias)
提供从视图坐标空间到模型逻辑坐标空间的映射。 |
从类 javax.swing.text.CompositeView 继承的方法 |
---|
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, getViewIndexAtPosition, loadChildren, modelToView, setInsets, setParagraphInsets, setParent |
从类 javax.swing.text.View 继承的方法 |
---|
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, remove, removeAll, removeUpdate, updateChildren, updateLayout, viewToModel |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public BoxView(Element elem, int axis)
BoxView
。
elem
- 此视图负责的元素axis
- View.X_AXIS
或 View.Y_AXIS
之一方法详细信息 |
---|
public int getAxis()
View.X_AXIS
或 View.Y_AXIS
public void setAxis(int axis)
axis
- View.X_AXIS
或 View.Y_AXIS
之一public void layoutChanged(int axis)
setSize
方法时,布局将被更新。
axis
- View.X_AXIS
或 View.Y_AXIS
之一protected boolean isLayoutValid(int axis)
axis
- View.X_AXIS
或 View.Y_AXIS
之一protected void paintChild(Graphics g, Rectangle alloc, int index)
g
- 图像上下文alloc
- 分配的要向其绘制的区域index
- 子级的索引,该索引 >= 0 && < getViewCount()public void replace(int index, int length, View[] elems)
CompositeView
中的 replace
index
- 要插入新视图的子视图的开始索引;其值 >= 0 且 <= getViewCountlength
- 要移除的现有子视图数;其值 >= 0 且 <= (getViewCount() - offset)elems
- 要添加的子视图;此值可以为 null
,表示没有要添加的子级(对移除有用)protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
DocumentEvent
转发给需要接收模型更改通知的子视图。如果有一个子级更改了它的要求并且在转发前分配为有效,则框中从开始子级到框结束部分将被重新绘制。
View
中的 forwardUpdate
ec
- 此视图负责的元素发生的更改(如果未发生更改,则为 null
)e
- 来自相关文档的更改信息a
- 视图的当前分配f
- 重新构造时需要使用的工厂(如果视图有子级)View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void preferenceChanged(View child, boolean width, boolean height)
View
中的 preferenceChanged
child
- 子视图width
- 如果应更改宽度首选项,则为 trueheight
- 如果应更改高度首选项,则为 trueJComponent.revalidate()
public int getResizeWeight(int axis)
View
中的 getResizeWeight
axis
- 可以是 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果轴无效public void setSize(float width, float height)
View
中的 setSize
width
- 宽度 >= 0height
- 高度 >= 0public void paint(Graphics g, Shape allocation)
BoxView
。只呈现与给定 Graphics
边界相交的子级。
View
中的 paint
g
- 要使用的呈现面allocation
- 要呈现的已分配区域View.paint(java.awt.Graphics, java.awt.Shape)
public Shape getChildAllocation(int index, Shape a)
null
,否则执行超类行为。
CompositeView
中的 getChildAllocation
index
- 子级的索引,该索引 >= 0 && < getViewCount()a
- 对此视图的分配
a
为 null
则返回 null
;如果布局无效,则返回 null
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
CompositeView
中的 modelToView
pos
- 要转换的位置,其值 >= 0a
- 分配的要在其中呈现的区域b
- 一个偏移值,可以是 Position.Bias.Forward
或 Position.Bias.Backward
BadLocationException
- 如果给定位置在所关联的文档中不是一个有效位置View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
CompositeView
中的 viewToModel
x
- 要转换的视图位置的 x 坐标,其值 >= 0y
- 要转换的视图位置的 y 坐标,其值 >= 0a
- 分配的要在其中呈现的区域bias
- 可以是 Position.Bias.Forward
或 Position.Bias.Backward
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public float getAlignment(int axis)
View
中的 getAlignment
axis
- 可以是 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果轴无效public float getPreferredSpan(int axis)
View
中的 getPreferredSpan
axis
- 可以为 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果轴类型无效View.getPreferredSpan(int)
public float getMinimumSpan(int axis)
View
中的 getMinimumSpan
axis
- 可以为 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果轴类型无效View.getPreferredSpan(int)
public float getMaximumSpan(int axis)
View
中的 getMaximumSpan
axis
- 可以为 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果轴类型无效View.getPreferredSpan(int)
protected boolean isAllocationValid()
protected boolean isBefore(int x, int y, Rectangle innerAlloc)
CompositeView
中的 isBefore
x
- X 坐标,该坐标 >= 0y
- Y 坐标,该坐标 >= 0innerAlloc
- 已分配区域;这是 insets 内部的区域
protected boolean isAfter(int x, int y, Rectangle innerAlloc)
CompositeView
中的 isAfter
x
- X 坐标,该坐标 >= 0y
- Y 坐标,该坐标 >= 0innerAlloc
- 已分配区域;这是 insets 内部的区域
protected View getViewAtPoint(int x, int y, Rectangle alloc)
CompositeView
中的 getViewAtPoint
x
- X 坐标,该坐标 >= 0y
- Y 坐标,该坐标 >= 0alloc
- 父级在入口处的内部分配,在出口处应将更改为子级的分配
protected void childAllocation(int index, Rectangle alloc)
CompositeView
中的 childAllocation
index
- 要为子视图分配的索引,该索引 >= 0 && < getViewCount()alloc
- 分配的区域protected void layout(int width, int height)
width
- insets 的内部宽度,该宽度 >= 0height
- insets 的内部高度,该高度 >= 0public int getWidth()
public int getHeight()
protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
targetSpan
- 分配给视图的总区域,将用于布置子级axis
- 要布置的轴offsets
- 每个子视图相对于视图原点的偏移量;这是一个返回值,由此方法的实现填充spans
- 每个子视图的区域;这是一个返回值,由此方法的实现填充protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
targetSpan
- 分配给视图的总区域,将用于布置子级axis
- 要布置的轴offsets
- 每个子视图相对于视图原点的偏移量;这是一个返回值,由此方法的实现填充spans
- 每个子视图的区域;这是一个返回值,由此方法的实现填充protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r)
axis
的大小要求。
axis
- 所考察的轴r
- SizeRequirements
对象;如果为 null
,将创建一个对象
SizeRequirements
对象SizeRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
axis
的大小要求。
axis
- 所考察的轴r
- SizeRequirements
对象;如果为 null
,将创建一个对象
SizeRequirements
对象SizeRequirements
protected void baselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)
targetSpan
区域,即我们将使用的区域的宽度(或高度),计算每个子视图在此 BoxView
中的位置和扩展。
targetSpan
- 分配给视图的总区域,将用于布置子级axis
- 所考察的轴,可以是 View.X_AXIS
或 View.Y_AXIS
offsets
- 一个空数组,由此方法用指定每个子视图位置的值填充spans
- 一个空数组,由此方法用指定每个子视图扩展的值填充protected SizeRequirements baselineRequirements(int axis, SizeRequirements r)
BoxView
的大小要求。
axis
- 所考察的轴r
- SizeRequirements
对象;如果为 null
,将创建一个对象
SizeRequirements
对象protected int getOffset(int axis, int childIndex)
axis
- 所考察的轴childIndex
- 所请求子级的索引
protected int getSpan(int axis, int childIndex)
axis
- 所考察的轴childIndex
- 所请求子级的索引
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
View
从按左到右布置,这样位于它东面的 View
的索引为 n + 1,位于它西面的 View
的索引为 n - 1。在某些情况下(例如双向文本中)有可能位于它东面的 View
索引不是 n + 1,而是 n - 1,位于它西面的 View
索引不是 n - 1,而是 n + 1。在这种情况下,此方法返回 true,表明这些 View
按降序布置。否则该方法返回 false,表明这些视图 View
按升序布置。
如果接收者沿 Y_AXIS
布置它的 View
,这将返回在负责呈现 position
和 bias
的 View
上调用相同的方法所返回的值。否则将返回 false。
CompositeView
中的 flipEastAndWestAtEnds
position
- 模型中的位置bias
- 可以是 Position.Bias.Forward
或 Position.Bias.Backward
View
的负责呈现 position
和 bias
的 View
按降序布置则返回 true;否则返回 false
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。