- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- 实现的所有接口
-
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
,DocumentListener
通常不需要直接调用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
。
-
-
字段汇总
-
声明的属性在类 javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
-
Fields declared in 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
-
-
构造方法摘要
构造方法 构造器 描述 CompositeView(Element elem)
为给定元素构造CompositeView
。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 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)
设置视图的insets。protected void
setParagraphInsets(AttributeSet attr)
设置给定属性中指定的段落属性的插入。void
setParent(View parent)
设置视图的父级。int
viewToModel(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
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
)。 如果此视图具有子视图(视图正从视图层次结构中的一个位置移动到另一个位置),则不会调用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
- 条目框内部的分配,以及退出时索引处的子视图分配。
-
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)
设置视图的insets。- 参数
-
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)
确定下一个视图的放置方向。 考虑索引为n的View
。 通常情况下,View
,因此View
将位于指数n + 1,而View
位于指数n - 1.在某些情况下,例如双向文本,有可能View
到EAST不在索引n + 1,而是在索引n - 1,或者说View
到WEST不在索引n - 1,但索引n + 1.在这种情况下这方法将返回true,表示View
s按降序排列。这无条件地返回false,如果有可能按降序排列
View
,则子类应覆盖此方法。- 参数
-
position
- 进入模型的位置 -
bias
-Position.Bias.Forward
或Position.Bias.Backward
- 结果
- 假
-
-