|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing.text
类 BoxView
java.lang.Object javax.swing.text.View javax.swing.text.CompositeView javax.swing.text.BoxView
- 所有已实现的接口:
- SwingConstants
- 直接已知子类:
- BlockView, FlowView, TableView, TableView.TableCell, TableView.TableRow, WrappedPlainView, ZoneView
-
public class BoxView
- extends CompositeView
一个视图,它通过沿某轴平铺将其子级排列到框形状中。此框与 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.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 |
构造方法详细信息 |
---|
BoxView
public BoxView(Element elem, int axis)
-
构造一个
BoxView
。- 参数:
elem
- 此视图负责的元素axis
-View.X_AXIS
或View.Y_AXIS
之一
方法详细信息 |
---|
getAxis
public int getAxis()
- 获取平铺轴属性。这是子视图平铺沿用的轴。
-
- 返回:
-
框的主轴,可以是
View.X_AXIS
或View.Y_AXIS
- 从以下版本开始:
- 1.3
setAxis
public void setAxis(int axis)
- 设置平铺轴属性。这是子视图平铺沿用的轴。
-
- 参数:
axis
-View.X_AXIS
或View.Y_AXIS
之一- 从以下版本开始:
- 1.3
layoutChanged
public void layoutChanged(int axis)
-
使沿某轴的布局变得无效。如果任何一个子视图的首选项发生更改,将自动使所沿轴的布局变得无效。有些情况下,如果首选项未更改,则可能需要重新计算布局。调用此方法可将布局标记为无效。下次在此视图(通常在绘制中)上调用
setSize
方法时,布局将被更新。 -
- 参数:
axis
-View.X_AXIS
或View.Y_AXIS
之一- 从以下版本开始:
- 1.3
isLayoutValid
protected boolean isLayoutValid(int axis)
- 确定沿给定轴的布局是否有效。
-
- 参数:
axis
-View.X_AXIS
或View.Y_AXIS
之一- 从以下版本开始:
- 1.4
paintChild
protected void paintChild(Graphics g, Rectangle alloc, int index)
- 绘制一个子级。默认情况下,这就是它所执行的所有功能,但是子类可使用此方法绘制跟该子级有关的组件。
-
- 参数:
g
- 图像上下文alloc
- 分配的要向其绘制的区域index
- 子级的索引,该索引 >= 0 && < getViewCount()
replace
public void replace(int index, int length, View[] elems)
- 使布局变得无效并调整所需/分配的缓存大小。旧布局中的子级分配仍可被访问,但是新的子级将都有一个值为 0 的偏移量和区域。
-
- 覆盖:
-
类
CompositeView
中的replace
-
- 参数:
index
- 要插入新视图的子视图的开始索引;其值 >= 0 且 <= getViewCountlength
- 要移除的现有子视图数;其值 >= 0 且 <= (getViewCount() - offset)elems
- 要添加的子视图;此值可以为null
,表示没有要添加的子级(对移除有用)
forwardUpdate
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)