java.lang.Object
javax.swing.text.View
javax.swing.text.CompositeView
- 所有已实现的接口:
SwingConstants
- 已知子类:
BoxView
CompositeView 是一个抽象的 View 实现,它管理一个或多个子视图。 (请注意,CompositeView 用于管理相对较少数量的子视图。)CompositeView 旨在用作 View 实现的起点,例如 BoxView ,它将包含子 View s。希望管理子 View 集合的子类应该使用 replace(int, int, javax.swing.text.View[]) 方法。由于 View 在 DocumentListener 通知期间调用 replace,您通常不需要直接调用 replace。
虽然 CompositeView 不对其子 View 施加布局策略,但它确实允许插入它将包含的子 View 。insets可以由 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 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述protected abstract voidchildAllocation(int index, Rectangle a) 返回给定子项的分配。protected booleanflipEastAndWestAtEnds(int position, Position.Bias bias) 确定下一个视图的放置方向。protected short获取底部insets。getChildAllocation(int index, Shape a) 获取给定子视图的分配以呈现到其中。protected Rectangle将提供给视图的不可变分配转换为代表内部分配的可变分配(即给定分配的边界,删除了顶部、左侧、底部和右侧的insets。protected short获取左insets。protected intgetNextEastWestVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) 返回光标的下一个视觉位置,向东或向西。protected intgetNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) 返回光标的下一个视觉位置,在北或南方向。intgetNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) 提供一种方法来确定下一个可能放置插入符号的可视化模型位置。protected short获取正确的insets。protected short获取顶部insets。getView(int n) 返回此容器中的第 n 个视图。protected abstract ViewgetViewAtPoint(int x, int y, Rectangle alloc) 获取给定坐标处的子视图。protected ViewgetViewAtPosition(int pos, Rectangle a) 获取表示模型中给定位置的子视图。int返回此视图的子视图数。intgetViewIndex(int pos, Position.Bias b) 返回表示模型中给定位置的子视图索引。protected intgetViewIndexAtPosition(int pos) 获取表示模型中给定位置的子视图索引。protected abstract boolean测试点是否位于矩形范围之后。protected abstract boolean测试点是否位于矩形范围之前。protected void加载所有子项以初始化视图。modelToView(int pos, Shape a, Position.Bias b) 提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) 提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。void替换子视图。protected voidsetInsets(short top, short left, short bottom, short right) 设置视图的insets。protected void从给定属性中指定的段落属性设置insets。void设置视图的父级。intviewToModel(float x, float y, Shape a, Position.Bias[] bias) 提供从视图坐标空间到模型的逻辑坐标空间的映射。在类 javax.swing.text.View 中声明的方法
append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getParent, getPreferredSpan, getResizeWeight, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, paint, preferenceChanged, remove, removeAll, removeUpdate, setSize, updateChildren, updateLayout, viewToModel
-
构造方法详细信息
-
CompositeView
为给定元素构造一个CompositeView。- 参数:
elem- 此视图负责的元素
-
-
方法详情
-
loadChildren
加载所有子项以初始化视图。这是由setParent(javax.swing.text.View)方法调用的。子类可以重新实现它以不同的方式初始化它们的子视图。默认实现为每个子元素创建一个子视图。- 参数:
f- 视图工厂- 参见:
-
setParent
设置视图的父级。如果此视图还没有子项,则重新实现它以提供超类行为以及调用loadChildren方法。不应在构造函数中加载子项,因为设置父项的行为可能会导致他们尝试向上搜索层次结构(例如获取托管Container)。如果此视图有子视图(视图正在从视图层次结构中的一个位置移动到另一个位置),则不会调用loadChildren方法。 -
getViewCount
public int getViewCount()返回此视图的子视图数。- 重写:
getViewCount在类View中- 返回:
- 观看次数 >= 0
- 参见:
-
getView
返回此容器中的第 n 个视图。 -
replace
替换子视图。如果没有要删除的视图,这将充当插入。如果没有要添加的视图,这将作为删除。被删除的视图会将父级设置为null,并删除对它们的内部引用,以便它们可以被垃圾收集。 -
getChildAllocation
获取给定子视图的分配以呈现到其中。这使得能够找出各种视图所在的位置。- 重写:
getChildAllocation在类View中- 参数:
index- 孩子的索引,>= 0 && < getViewCount()a- 分配给这个视图- 返回:
- 分配给子级
-
modelToView
提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。- 指定者:
modelToView在类View中- 参数:
pos- 要转换的位置 >= 0a- 要渲染到的分配区域b-Position.Bias.Forward或Position.Bias.Backward的偏置值- 返回:
- 给定位置的边界框
- 抛出:
BadLocationException- 如果给定位置不代表相关文档中的有效位置- 参见:
-
modelToView
public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException 提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。- 重写:
modelToView在类View中- 参数:
p0- 要转换的位置 >= 0b0- 偏向 p0 表示的前一个字符或下一个字符,以防该位置是两个视图的边界;Position.Bias.Forward或Position.Bias.Backwardp1- 要转换的位置 >= 0b1- 偏向 p1 表示的前一个字符或下一个字符,以防位置是两个视图的边界a- 要渲染到的分配区域- 返回:
- 返回给定位置的边界框
- 抛出:
BadLocationException- 如果给定位置不代表相关文档中的有效位置IllegalArgumentException- 对于无效的偏置参数- 参见:
-
viewToModel
提供从视图坐标空间到模型的逻辑坐标空间的映射。- 指定者:
viewToModel在类View中- 参数:
x- 要转换的视图位置的 x 坐标 >= 0y- 要转换的视图位置的 y 坐标 >= 0a- 要渲染到的分配区域bias-Position.Bias.Forward或Position.Bias.Backward- 返回:
- 模型中最能代表视图中给定点的位置 >= 0
- 参见:
-
getNextVisualPositionFrom
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[])的便捷方法。该方法可以指定一个位置在 >=0 的范围内进行转换。如果值为-1,将自动计算位置。如果值 < -1,将抛出BadLocationException。- 重写:
getNextVisualPositionFrom在类View中- 参数:
pos- 要转换的位置b-Position.Bias.Forward或Position.Bias.Backward的偏置值a- 要渲染到的分配区域direction- 从当前位置开始的方向,可以被认为是通常在键盘上找到的箭头键;这可能是以下之一:SwingConstants.WESTSwingConstants.EASTSwingConstants.NORTHSwingConstants.SOUTH
biasRet- 包含已检查偏差的数组- 返回:
- 模型中最能代表下一个位置视觉位置的位置
- 抛出:
BadLocationException- 给定位置不是文档中的有效位置IllegalArgumentException- 如果direction无效
-
getViewIndex
返回表示模型中给定位置的子视图索引。这是为了调用getViewIndexByPosition方法实现向后兼容。- 重写:
getViewIndex在类View中- 参数:
pos- 位置 >= 0b- 偏差- 返回:
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为 -1
- 自从:
- 1.3
-
isBefore
测试点是否位于矩形范围之前。- 参数:
x- X 坐标 >= 0y- Y 坐标 >= 0alloc- 矩形- 返回:
- 如果该点在指定范围之前,则为真
-
isAfter
测试点是否位于矩形范围之后。- 参数:
x- X 坐标 >= 0y- Y 坐标 >= 0alloc- 矩形- 返回:
- 如果点在指定范围之后则为真
-
getViewAtPoint
获取给定坐标处的子视图。- 参数:
x- X 坐标 >= 0y- Y 坐标 >= 0alloc- 父母在进入时的分配,应更改为孩子在退出时的分配- 返回:
- 子级的看法
-
childAllocation
返回给定子项的分配。- 参数:
index- 孩子的索引,>= 0 && < getViewCount()a- 进入时分配到框的内部,以及退出时在索引处分配子视图。
-
getViewAtPosition
获取表示模型中给定位置的子视图。这是为了在每个子元素都有一个子视图的情况下获取视图。- 参数:
pos- 位置 >= 0a- 进入时分配给框的内部,分配包含退出时位置的视图- 返回:
-
表示给定位置的视图,如果没有,则为
null
-
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos) 获取表示模型中给定位置的子视图索引。这是为了在每个子元素都有一个子视图的情况下获取视图。- 参数:
pos- 位置 >= 0- 返回:
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为 -1
-
getInsideAllocation
将给予视图的不可变分配转换为表示内部分配的可变分配(即给定分配的边界,删除了顶部、左侧、底部和右侧的insets。预计返回值将进一步突变为表示对子视图的分配。这是为了重用实例变量而实现的,因此它避免创建过多的矩形。通常,调用此方法的结果将提供给childAllocation方法。- 参数:
a- 给视图的分配- 返回:
-
在所有边距被移除后代表视图内部的分配;如果给定的分配是
null,则返回值为null
-
setParagraphInsets
从给定属性中指定的段落属性设置insets。- 参数:
attr- 属性
-
setInsets
protected void setInsets(short top, short left, short bottom, short right) 设置视图的insets。- 参数:
top- 顶部insets >= 0left- 左侧insets >= 0bottom- 底部insets >= 0right- 右insets >= 0
-
getLeftInset
protected short getLeftInset()获取左insets。- 返回:
- insets >= 0
-
getRightInset
protected short getRightInset()获取正确的insets。- 返回:
- insets >= 0
-
getTopInset
protected short getTopInset()获取顶部insets。- 返回:
- insets >= 0
-
getBottomInset
protected short getBottomInset()获取底部insets。- 返回:
- insets >= 0
-
getNextNorthSouthVisualPositionFrom
protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias [] biasRet) throws BadLocationException 返回光标的下一个视觉位置,在北或南方向。- 参数:
pos- 要转换的位置 >= 0b-Position.Bias.Forward或Position.Bias.Backward的偏置值a- 要渲染到的分配区域direction- 从当前位置开始的方向,可以被认为是通常在键盘上找到的箭头键;这可能是以下之一:SwingConstants.NORTHSwingConstants.SOUTH
biasRet- 包含已检查偏差的数组- 返回:
- 模型中最能代表下一个北或南位置的位置
- 抛出:
BadLocationException- 文档模型中的错误位置IllegalArgumentException- 如果direction无效- 参见:
-
getNextEastWestVisualPositionFrom
protected int getNextEastWestVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias [] biasRet) throws BadLocationException 返回光标的下一个视觉位置,向东或向西。- 参数:
pos- 要转换的位置 >= 0b-Position.Bias.Forward或Position.Bias.Backward的偏置值a- 要渲染到的分配区域direction- 从当前位置开始的方向,可以被认为是通常在键盘上找到的箭头键;这可能是以下之一:SwingConstants.WESTSwingConstants.EAST
biasRet- 包含已检查偏差的数组- 返回:
- 模型中最能代表下一个西部或东部位置的位置
- 抛出:
BadLocationException- 文档模型中的错误位置IllegalArgumentException- 如果direction无效- 参见:
-
flipEastAndWestAtEnds
确定下一个视图的放置方向。考虑索引 n 处的View。通常View是从左到右排列的,因此到 EAST 的View将位于索引 n + 1,而到 WEST 的View将位于索引 n - 1。在某些情况下,例如双向文本, 到 EAST 的View可能不在索引 n + 1 处,而是在索引 n - 1 处,或者到 WEST 的View不在索引 n - 1 处,而是在索引 n + 1 处。在这种情况下,方法将返回 true,表示View是按降序排列的。这将无条件返回 false,如果有可能按降序排列
View,子类应重写此方法。- 参数:
position- 在模型中的位置bias-Position.Bias.Forward或Position.Bias.Backward- 返回:
- false
-