|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.swing.text.View
javax.swing.text.CompositeView
public abstract class CompositeView
CompositeView 是一个管理着一个或多个子视图的抽象 View 实现。(注意,CompositeView 主要管理相对较少的子视图。)CompositeView 主要充当 View 实现的起点,例如 BoxView,它将包含子 View。要管理子 View 集的子类应使用 replace(int, int, javax.swing.text.View[]) 方法。由于 View 在 DocumentListener 通知过程中调用 replace,所以通常不需要直接调用 replace。
虽然 CompositeView 不会对其子 View 施加布局策略,但它允许插入将包含的子 View。插入内容可通过 setInsets(short, short, short, short) 或 setParagraphInsets(javax.swing.text.AttributeSet) 进行设置。
除了 View 的抽象方法之外,CompositeView 的子类还需要重写:
isBefore(int, int, java.awt.Rectangle) - 用于测试给定的 View 位置是否位于 CompositeView 的可视空间之前。
isAfter(int, int, java.awt.Rectangle) - 用于测试给定的 View 位置是否位于 CompositeView 的可视空间之后。
getViewAtPoint(int, int, java.awt.Rectangle) - 返回位于给定可视位置的视图。
childAllocation(int, java.awt.Rectangle) - 返回特定子 View 的边界。getChildAllocation 在其边界减去 CompositeView 的 Inset 之后,将调用 childAllocation。
| 字段摘要 |
|---|
| 从类 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 |
| 构造方法摘要 | |
|---|---|
CompositeView(Element elem)
为给定元素构造一个 CompositeView。 |
|
| 方法摘要 | |
|---|---|
protected abstract void |
childAllocation(int index,
Rectangle a)
返回给定子级的分配区域。 |
protected boolean |
flipEastAndWestAtEnds(int position,
Position.Bias bias)
确定下一个视图放置的朝向。 |
protected short |
getBottomInset()
获取底部 inset。 |
Shape |
getChildAllocation(int index,
Shape a)
获取要在其中呈现的给定子视图的分配区域。 |
protected Rectangle |
getInsideAllocation(Shape a)
将分配给视图的不可变分配区域转换为表示内部分配区域的可变分配区域(即给定分配区域的边界,其顶部、左部、底部和右部的 insets 已移除)。 |
protected short |
getLeftInset()
获取左部 inset。 |
protected int |
getNextEastWestVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
返回光标的下一个可视位置,可以在东或在西。 |
protected int |
getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
返回光标的下一个可视位置,可以在北也可以在南。 |
int |
getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
提供一种方法来确定下一个以可视化形式表示的模型位置,用户可以在此位置放置一个插入符。 |
protected short |
getRightInset()
获取右部 inset。 |
protected short |
getTopInset()
获取顶部 inset。 |
View |
getView(int n)
返回该容器中的第 n 个视图。 |
protected abstract View |
getViewAtPoint(int x,
int y,
Rectangle alloc)
获取位于给定坐标的子视图。 |
protected View |
getViewAtPosition(int pos,
Rectangle a)
获取表示模型中给定位置的子视图。 |
int |
getViewCount()
返回此视图的子视图数。 |
int |
getViewIndex(int pos,
Position.Bias b)
返回表示模型中给定位置的子视图索引。 |
protected int |
getViewIndexAtPosition(int pos)
获取表示模型中给定位置的子视图索引。 |
protected abstract boolean |
isAfter(int x,
int y,
Rectangle alloc)
测试一个点是否位于矩形范围之后。 |
protected abstract boolean |
isBefore(int x,
int y,
Rectangle alloc)
测试一个点是否位于矩形范围之前。 |
protected void |
loadChildren(ViewFactory f)
加载所有的子级以初始化该视图。 |
Shape |
modelToView(int p0,
Position.Bias b0,
int p1,
Position.Bias b1,
Shape a)
提供从文档模型坐标空间到所映射的视图坐标空间的映射。 |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b)
提供从文档模型坐标空间到所映射的视图坐标空间的映射。 |
void |
replace(int offset,
int length,
View[] views)
替换子视图。 |
protected void |
setInsets(short top,
short left,
short bottom,
short right)
设置视图的 insets。 |
protected void |
setParagraphInsets(AttributeSet attr)
按照给定属性中指定的段落属性设置 insets。 |
void |
setParent(View parent)
设置此视图的父级。 |
int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] bias)
提供从视图坐标空间到模型的逻辑坐标空间的映射。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public CompositeView(Element elem)
CompositeView。
elem - 此视图负责的元素| 方法详细信息 |
|---|
protected void loadChildren(ViewFactory f)
setParent(javax.swing.text.View) 方法调用。子类可重新实现它以便按不同的方式初始化其子视图。默认实现为每个子元素创建一个子视图。
f - 视图工厂setParent(javax.swing.text.View)public void setParent(View parent)
loadChildren 方法。不应在构造方法中加载子级,因为设置父级的动作可能引起它们试图沿层次结构向上搜索,例如,要获得承载 Container。如果此视图有子级(视图从视图层次结构中的一个位置移动到另一个位置),则不调用 loadChildren 方法。
View 中的 setParentparent - 视图的父级,如果没有则为 nullpublic int getViewCount()
View 中的 getViewCountgetView(int)public View getView(int n)
View 中的 getViewn - 需要的视图数量,该数量 >= 0 且 < getViewCount()
n 的视图
public void replace(int offset,
int length,
View[] views)
null,并且移除了对它们的内部引用,所以它们有可能被作为垃圾回收。
View 中的 replaceoffset - 要插入新视图的子视图的起始索引;该索引 >= 0 且 <= getViewCountlength - 要移除的现有子视图数;此值应 >= 0 且 <= (getViewCount() - offset)views - 要添加的子视图;此值可以为 null,表示不添加任何子级(对移除有用)
public Shape getChildAllocation(int index,
Shape a)
View 中的 getChildAllocationindex - 子级的索引,该索引 >= 0 且 < getViewCount()a - 对此视图的分配区域
public Shape modelToView(int pos,
Shape a,
Position.Bias b)
throws BadLocationException
View 中的 modelToViewpos - 要转换的位置,该位置 >= 0a - 要在其中呈现的已分配区域b - 一个偏移值,可以是 Position.Bias.Forward 或 Position.Bias.Backward
BadLocationException - 如果给定位置不是相关文档中的有效位置View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public Shape modelToView(int p0,
Position.Bias b0,
int p1,
Position.Bias b1,
Shape a)
throws BadLocationException
View 中的 modelToViewp0 - 要转换的位置,该位置 >= 0b0 - 由 p0 表示的上一字符或下一个字符的偏移量,在这种情况下,该位置是两个视图的边界;既可以是 Position.Bias.Forward,也可以是 Position.Bias.Backwardp1 - 要转换的位置,该位置 >= 0b1 - 由 p1 表示的上一字符或下一个字符的偏移量,在这种情况下,该位置是两个视图的边界;a - 要呈现的已分配区域
BadLocationException - 如果给定位置不是相关文档中的有效位置
IllegalArgumentException - 如果为无效的偏移量参数View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public int viewToModel(float x,
float y,
Shape a,
Position.Bias[] bias)
View 中的 viewToModelx - 要转换的视图位置的 x 坐标,该坐标 >= 0y - 要转换的视图位置的 y 坐标,该坐标 >= 0a - 要呈现的已分配区域bias - 可以是 Position.Bias.Forward 或 Position.Bias.Backward
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public int getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException
getNextNorthSouthVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[]) 和 getNextEastWestVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[]) 的便捷方法。
View 中的 getNextVisualPositionFrompos - 要转换的位置,该位置 >= 0b - 偏移量值,可以是 Position.Bias.Forward 或 Position.Bias.Backwarda - 要呈现的已分配区域direction - 相对当前位置的方向,通常可视为键盘上看到的方向键;它可能为下列值之一:
SwingConstants.WEST
SwingConstants.EAST
SwingConstants.NORTH
SwingConstants.SOUTH
biasRet - 一个包含已检查偏移量的数组
BadLocationException
IllegalArgumentException - 如果 direction 无效
public int getViewIndex(int pos,
Position.Bias b)
getViewIndexByPosition 方法以便向后兼容。
View 中的 getViewIndexpos - 位置,该位置 >= 0
protected abstract boolean isBefore(int x,
int y,
Rectangle alloc)
x - X 坐标,该坐标 >= 0y - Y 坐标,该坐标 >= 0alloc - 矩形
protected abstract boolean isAfter(int x,
int y,
Rectangle alloc)
x - X 坐标,该坐标 >= 0y - Y 坐标,该坐标 >= 0alloc - 矩形
protected abstract View getViewAtPoint(int x,
int y,
Rectangle alloc)
x - X 坐标,该坐标 >= 0y - Y 坐标,该坐标 >= 0alloc - 入口处父级的分配区域,出口处应改为子级的分配区域
protected abstract void childAllocation(int index,
Rectangle a)
index - 子级的索引,该索引 >= 0 且 < getViewCount()a - 入口处框内部的分配区域,和出口索引处的子视图分配区域。
protected View getViewAtPosition(int pos,
Rectangle a)
pos - 位置,该位置 >= 0a - 入口处框内部的分配区域,出口处包含此位置的视图分配区域
nullprotected int getViewIndexAtPosition(int pos)
pos - 位置,该位置 >= 0
protected Rectangle getInsideAllocation(Shape a)
childAllocation 方法。
a - 分配给视图的分配区域
null,则返回值为 nullprotected void setParagraphInsets(AttributeSet attr)
attr - 属性
protected void setInsets(short top,
short left,
short bottom,
short right)
top - 顶部 inset,该值 >= 0left - 左部 inset,该值 >= 0bottom - 底部 inset,该值 >= 0right - 右部 inset,该值 >= 0protected short getLeftInset()
protected short getRightInset()
protected short getTopInset()
protected short getBottomInset()
protected int getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException
pos - 要转换的位置,该位置 >= 0b - 偏移量值,可以是 Position.Bias.Forward 或 Position.Bias.Backwarda - 要呈现的已分配区域direction - 相对当前位置的方向,通常可视为键盘上看到的方向键;它可能为下列值之一:
SwingConstants.NORTH
SwingConstants.SOUTH
biasRet - 一个包含已检查偏移量的数组
BadLocationException
IllegalArgumentException - 如果 direction 无效getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
protected int getNextEastWestVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException
pos - 要转换的位置,该位置 >= 0b - 偏移量值,可以是 Position.Bias.Forward 或 Position.Bias.Backwarda - 要呈现的已分配区域direction - 相对当前位置的方向,通常可视为键盘上看到的方向键;它可能为下列值之一:
SwingConstants.WEST
SwingConstants.EAST
biasRet - 一个包含已检查偏移量的数组
BadLocationException
IllegalArgumentException - 如果 direction 无效getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
protected boolean flipEastAndWestAtEnds(int position,
Position.Bias bias)
View 位于索引 n 处,通常 View 是从左向右放置的,所以在东面的 View 将位于索引 n + 1 处,在西面的 View 将位于索引 n - 1 处。在某些情况下(例如双向文本中)有可能东面的 View 不是位于 n + 1 处,而是位于 n - 1 处,或者西面的 View 不是位于 n - 1 处,而是位于索引 n + 1 处。这种情况下,该方法将返回 true,指示 View 按降序放置。
它无条件返回 false,如果有可能需要按降序放置 View,则子类应重写此方法。
position - 模型中的位置bias - 可以是 Position.Bias.Forward 或 Position.Bias.Backward
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。