public abstract class CompositeView extends View
CompositeView
是一个抽象的
View
实施管理一个或多个子视图。(注意,
CompositeView
用于管理孩子的观点。相对较少)
CompositeView
拟作为
View
实现的一个起点,如
BoxView
,将包含孩子
View
s。子类,希望管理儿童
View
s收集应使用
replace(int, int, javax.swing.text.View[])
方法。作为
View
调用
replace
DocumentListener
通知时,你通常不需要直接调用
replace
。
而CompositeView
没有对其孩子View
s处以布局策略,它允许嵌入孩子View
s将包含。插图可以设置通过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
将调用childAllocation
偏移范围后的CompositeView
的Inset
s。BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
Constructor and Description |
---|
CompositeView(Element elem)
构建了一个给定的元素
CompositeView 。
|
Modifier and Type | Method and Description |
---|---|
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 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)
设置视图的插图。
|
protected void |
setParagraphInsets(AttributeSet attr)
集从款镶在给定的属性指定属性。
|
void |
setParent(View parent)
设置视图的父视图。
|
int |
viewToModel(float x, float y, Shape a, Position.Bias[] bias)
从视图坐标空间提供一个映射到模型的逻辑坐标空间。
|
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
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
方法不会被调用。
public int getViewCount()
getViewCount
方法重写,继承类
View
getView(int)
public View getView(int n)
public void replace(int offset, int length, View[] views)
null
,且他们的内部参考中删除,他们可能被垃圾收集。
public Shape getChildAllocation(int index, Shape a)
getChildAllocation
方法重写,继承类
View
index
-孩子的指数,>=0和<getviewcount()
a
-配置这一观点
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
modelToView
方法重写,继承类
View
pos
-位置转换> = 0
a
-分配区域进行渲染
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
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[])
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
viewToModel
方法重写,继承类
View
x
-视图位置的x坐标转换> = 0
y
- y的角度位置坐标转换> = 0
a
-分配区域进行渲染
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[])
便利的方法。此方法使指定在> = 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
无效
public int getViewIndex(int pos, Position.Bias b)
getViewIndexByPosition
方法调用。
getViewIndex
方法重写,继承类
View
pos
--位置> = 0
protected abstract boolean isBefore(int x, int y, Rectangle alloc)
x
- x坐标> = 0
y
- Y坐标> = 0
alloc
-矩形
protected abstract boolean isAfter(int x, int y, Rectangle alloc)
x
- x坐标> = 0
y
- Y坐标> = 0
alloc
-矩形
protected abstract View getViewAtPoint(int x, int y, Rectangle alloc)
x
- x坐标> = 0
y
- Y坐标> = 0
alloc
-进入父母的分配,应改为孩子的分配退出
protected abstract void childAllocation(int index, Rectangle a)
index
-孩子的指数,>=0和<getviewcount()
a
-配置在进入盒内,以及分配的子视图在退出指数。
protected View getViewAtPosition(int pos, Rectangle a)
pos
--位置> = 0
a
-配置在进入盒内,以及分配视图包含出口位置
null
如果没有
protected int getViewIndexAtPosition(int pos)
pos
--位置> = 0
protected Rectangle getInsideAllocation(Shape a)
childAllocation
方法。
a
-给视图的配置
null
,返回值是
null
protected void setParagraphInsets(AttributeSet attr)
attr
-属性
protected void setInsets(short top, short left, short bottom, short right)
top
-顶部插入> = 0
left
-左上角> = 0
bottom
-底部插入> = 0
right
-正确的插入> = 0
protected 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
-位置转换> = 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[])
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[])
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
View
s布局从左到右考虑
View
,使
View
向东将在指数n + 1,和
View
向西将指数n - 1。在某些情况下,如双向文本,它是可能的,
View
东不在指数n + 1,而是在指数n - 1,或者说,
View
向西是不是指数n - 1,但指数n + 1。在这种情况下,此方法将返回true,表示
View
s布局排列。
这无条件返回false,子类应重写此方法,如果有View
s依次铺设的可能性。
position
位置到模型
bias
-
Position.Bias.Forward
或
Position.Bias.Backward
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.