- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- All Implemented Interfaces:
-
SwingConstants
- 已知直接子类:
-
BoxView
public abstract class CompositeView extends View
CompositeView
是一个抽象的View
实现,它管理一个或多个子视图。 (请注意,CompositeView
旨在用于管理较小数量的子视图。)CompositeView
旨在作为View
实现的起点,如BoxView
,将包含子代View
。 希望管理子集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
位置是否在View
的视觉空间CompositeView
。 -
getViewAtPoint(int, int, java.awt.Rectangle)
- 返回指定视觉位置的视图。 -
childAllocation(int, java.awt.Rectangle)
- 返回特定小孩的边界View
。getChildAllocation
将调用childAllocation
由抵减范围后Inset
S中的CompositeView
。
-
-
Field Summary
-
Fields inherited from 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
-
Fields inherited from class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
-
-
构造方法摘要
构造方法 Constructor 描述 CompositeView(Element elem)
为给定元素构造一个CompositeView
。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 protected abstract void
childAllocation(int index, Rectangle a)
返回给定子项的分配。protected boolean
flipEastAndWestAtEnds(int position, Position.Bias bias)
确定下一个视图放在哪个方向。protected short
getBottomInset()
获取底部插图。Shape
getChildAllocation(int index, Shape a)
获取给定子视图的分配。protected Rectangle
getInsideAllocation(Shape a)
将给予视图的不可变分配转换为表示内部分配的可变分配(即,删除顶,左,底和右插入的给定分配的边界。protected short
getLeftInset()
得到左边的插图。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()
获取正确的插图。protected short
getTopInset()
获得顶级插图。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 pos, Shape a, Position.Bias b)
提供从文档模型坐标空间映射到映射到它的视图的坐标空间的映射。Shape
modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
提供从文档模型坐标空间映射到映射到它的视图的坐标空间的映射。void
replace(int offset, int length, View[] views)
代替子视图。protected void
setInsets(short top, short left, short bottom, short right)
设置视图的插值。protected void
setParagraphInsets(AttributeSet attr)
从给定属性中指定的段落属性设置插值。void
setParent(View parent)
设置视图的父级。int
viewToModel(float x, float y, Shape a, Position.Bias[] bias)
提供从视图坐标空间到模型的逻辑坐标空间的映射。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class 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
public CompositeView(Element elem)
为给定的元素构造一个CompositeView
。- 参数
-
elem
- 这个视图负责的元素
-
-
方法详细信息
-
loadChildren
protected void loadChildren(ViewFactory f)
- 参数
-
f
- 视图工厂 - 另请参见:
-
setParent(javax.swing.text.View)
-
setParent
public void setParent(View parent)
设置视图的父级。 如果此视图尚不具有子loadChildren
则会重新实现此功能以提供超类行为以及调用loadChildren
方法。 孩子不应该加载在构造函数中,因为设置父Container
的行为可能会导致他们尝试搜索层次结构(例如获取主机Container
)。 如果此视图具有子视图(视图正从视图层次结构中的一个位置移动到另一个视图),则不会调用loadChildren
方法。
-
getViewCount
public int getViewCount()
返回此视图的子视图数。- 重写:
-
getViewCount
在View
- 结果
- 视图数> = 0
- 另请参见:
-
getView(int)
-
getView
public View getView(int n)
返回此容器中的第n个视图。
-
replace
public void replace(int offset, int length, View[] views)
代替子视图。 如果没有任何意见删除这个行为作为插入。 如果没有任何视图添加此行为作为删除。 正在删除的视图将使父级设置为null
,并将它们的内部引用移除,以便它们可能被垃圾回收。
-
getChildAllocation
public Shape getChildAllocation(int index, Shape a)
获取给定子视图的分配。 这可以找出各种视图所在的位置。- 重写:
-
getChildAllocation
在View
- 参数
-
index
- 小孩的索引> = 0 && <getViewCount() -
a
- 这个视图的分配 - 结果
- 分配给孩子
-
modelToView
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
提供从文档模型坐标空间映射到映射到它的视图的坐标空间的映射。- Specified by:
-
modelToView
在View
- 参数
-
pos
- 转换> = 0的位置 -
a
- 要分配的区域 -
b
- 偏差值为Position.Bias.Forward
或Position.Bias.Backward
- 结果
- 给定位置的边界框
- 异常
-
BadLocationException
- 如果给定的位置不表示相关文档中的有效位置 - 另请参见:
-
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
-
modelToView
public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException
提供从文档模型坐标空间映射到映射到它的视图的坐标空间的映射。- 重写:
-
modelToView
在View
- 参数
-
p0
- 转换> = 0的位置 -
b0
- 在位置是两个视图的边界的情况下,对由p0表示的前一个字符或下一个字符的偏向;Position.Bias.Forward
或Position.Bias.Backward
-
p1
- 转换> = 0的位置 -
b1
- 对于前一个字符或由p1表示的下一个字符的偏置,在位置是两个视图的边界的情况下 -
a
- 要分配的区域 - 结果
- 返回给定位置的边界框
- 异常
-
BadLocationException
- 如果给定的位置不表示相关文档中的有效位置 -
IllegalArgumentException
- 用于无效的偏差参数 - 另请参见:
-
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
viewToModel
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
提供从视图坐标空间到模型的逻辑坐标空间的映射。- Specified by:
-
viewToModel
在View
- 参数
-
x
- 要转换的视图位置的x坐标> = 0 -
y
- 要转换的视图位置的y坐标> = 0 -
a
- 要分配的区域 -
bias
-Position.Bias.Forward
或Position.Bias.Backward
- 结果
- 模型中的位置最好地表示视图> = 0中的给定点
- 另请参见:
-
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
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.WEST
-
SwingConstants.EAST
-
SwingConstants.NORTH
-
SwingConstants.SOUTH
-
-
biasRet
- 包含被检查偏倚的数组 - 结果
- 模型中最能代表下一个位置视觉位置的位置
- 异常
-
BadLocationException
- 给定的位置不是文档中有效的位置 -
IllegalArgumentException
- 如果direction
无效
-
getViewIndex
public int getViewIndex(int pos, Position.Bias b)
返回表示模型中给定位置的子视图索引。 这被实现为向后兼容性调用getViewIndexByPosition
方法。- 重写:
-
getViewIndex
在View
- 参数
-
pos
- 位置> = 0 -
b
- 偏见 - 结果
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为-1
- 从以下版本开始:
- 1.3
-
isBefore
protected abstract boolean isBefore(int x, int y, Rectangle alloc)
测试点是否在矩形范围之前。- 参数
-
x
- X坐标> = 0 -
y
- Y坐标> = 0 -
alloc
- 矩形 - 结果
- 如果点在指定范围之前,则为true
-
isAfter
protected abstract boolean isAfter(int x, int y, Rectangle alloc)
测试一个点是否在矩形范围之后。- 参数
-
x
- X坐标> = 0 -
y
- Y坐标> = 0 -
alloc
- 矩形 - 结果
- 如果点在指定范围之后,则为true
-
getViewAtPoint
protected abstract View getViewAtPoint(int x, int y, Rectangle alloc)
在给定坐标处获取子视图。- 参数
-
x
- X坐标> = 0 -
y
- Y坐标> = 0 -
alloc
- 父母在入境时的分配,应在退出时更改为小孩的分配 - 结果
- 孩子观
-
childAllocation
protected abstract void childAllocation(int index, Rectangle a)
返回给定子项的分配。- 参数
-
index
- 小孩的索引> = 0 && <getViewCount() -
a
- 在条目分配到框内部,并在退出时在索引a
视图。
-
getViewAtPosition
protected View getViewAtPosition(int pos, Rectangle a)
获取代表模型中给定位置的子视图。 这是为了在每个子元素有子视图的情况下获取视图。- 参数
-
pos
- 位置> = 0 -
a
- 进入箱内部的分配以及包含退出位置的视图分配 - 结果
-
表示给定位置的视图,如果没有一个,
null
-
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos)
获取代表模型中给定位置的子视图索引。 这是为了在每个子元素有子视图的情况下获取视图。- 参数
-
pos
- 位置> = 0 - 结果
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为-1
-
getInsideAllocation
protected Rectangle getInsideAllocation(Shape a)
将给予视图的不可变分配转换为表示内部分配的可变分配(即,删除顶,左,底和右插入的给定分配的边界,预期返回值将进一步变更为表示对子视图的分配,实现为重用实例变量,以避免创建过多的矩形。通常,调用此方法的结果将被馈送到childAllocation
方法。- 参数
-
a
- 给予视图的分配 - 结果
-
表示视图内部的分配在所有边距全部被删除之后;
如果给定的分配为
null
,则返回值为null
-
setParagraphInsets
protected void setParagraphInsets(AttributeSet attr)
从给定属性中指定的段落属性设置插值。- 参数
-
attr
- 属性
-
setInsets
protected void setInsets(short top, short left, short bottom, short right)
设置视图的插值。- 参数
-
top
- 顶部插图> = 0 -
left
- 左插入> = 0 -
bottom
- 底部插图> = 0 -
right
- 正确的插图> = 0
-
getLeftInset
protected short getLeftInset()
得到左边的插图。- 结果
- 插图> = 0
-
getRightInset
protected short getRightInset()
获取正确的插图。- 结果
- 插图> = 0
-
getTopInset
protected short getTopInset()
获得顶级插图。- 结果
- 插图> = 0
-
getBottomInset
protected short getBottomInset()
获取底部插图。- 结果
- 插图> = 0
-
getNextNorthSouthVisualPositionFrom
protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
返回光标的下一个视觉位置,在北或南方向。- 参数
-
pos
- 转换> = 0的位置 -
b
- 偏差值为Position.Bias.Forward
或Position.Bias.Backward
-
a
- 要分配的区域 -
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[])
-
getNextEastWestVisualPositionFrom
protected int getNextEastWestVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
返回光标的下一个视觉位置,以东或西方向。- 参数
-
pos
- 转换> = 0的位置 -
b
- 偏差值为Position.Bias.Forward
或Position.Bias.Backward
-
a
- 要分配的区域 -
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[])
-
flipEastAndWestAtEnds
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
确定下一个视图放在哪个方向。 考虑索引号为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
- 结果
- 假
-
-