|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.swing.text.View
javax.swing.text.CompositeView
javax.swing.text.BoxView
javax.swing.text.ZoneView
public class ZoneView
ZoneView 是一个创建分区的 View 实现,该分区中在需要子视图来显示或进行模型/视图转换之前不会创建或存储子视图。在将要表示的模型很大的情况下,此类仅为将要主动地查看/编辑的区域构建视图对象,从而使其在内容消耗上有一个实质性的减少。可以通过某种途径估计子级的大小,或者仅利用保存的结果来异步计算。
ZoneView 扩展 BoxView 来为其子级提供一个实现分区的框。分区是特殊的 View 实现(此类的一个实例的子级),其仅表示一个 ZoneView 实例所负责的一部分模型。在尝试显示子视图之前,分区不创建子视图。一个框形的视图很合适,这是因为:
默认的行为由 maxZoneSize 和 maxZonesLoaded 两个属性来控制。将 maxZoneSize 设置为整数 Integer.MAX_VALUE 会导致仅创建一个分区。这将有效地将视图转换为装饰模式的一个实现。将 maxZonesLoaded 设置为 Integer.MAX_VALUE 整数值将导致分区永远不会被卸载。为简单起见,在由视图负责的元素的子元素所表示的边界上创建分区。分区可以是任何 View 实现,但是默认的实现以高效地支持极大分区的 AsyncBoxView 为基础。
View| 字段摘要 |
|---|
| 从类 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 |
| 构造方法摘要 | |
|---|---|
ZoneView(Element elem,
int axis)
构造一个 ZoneView。 |
|
| 方法摘要 | |
|---|---|
protected View |
createZone(int p0,
int p1)
针对模型中的给定范围(应该在此对象的职责范围内),创建一个视图来表示分区。 |
int |
getMaximumZoneSize()
获取当前最大的分区大小。 |
int |
getMaxZonesLoaded()
获取当前设置的允许同时加载的分区数。 |
protected int |
getViewIndexAtPosition(int pos)
返回表示模型中给定位置的子视图索引。 |
void |
insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
给出在文档中此视图负责的位置插入了某些内容的通知。 |
protected boolean |
isZoneLoaded(View zone)
确定某个分区是否处于加载状态。 |
protected void |
loadChildren(ViewFactory f)
加载所有子级来初始化视图。 |
void |
removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
给出从文档中此视图负责的位置移除了某些内容的通知。 |
void |
setMaximumZoneSize(int size)
设置所需的最大分区大小。 |
void |
setMaxZonesLoaded(int mzl)
设置当前设置的允许同时加载的分区数。 |
protected void |
unloadZone(View zone)
卸载一个分区(将分区转换到其内存节省状态)。 |
protected boolean |
updateChildren(DocumentEvent.ElementChange ec,
DocumentEvent e,
ViewFactory f)
超类行为将试图更新子视图,而在这种情况下并不需要这样做,因为子级是分区并且不受关联元素变化的直接影响。 |
protected void |
zoneWasLoaded(View zone)
当加载某个分区后由该分区调用。 |
| 从类 javax.swing.text.View 继承的方法 |
|---|
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateLayout, viewToModel |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public ZoneView(Element elem,
int axis)
elem - 此视图负责的元素axis - View.X_AXIS 或者 View.Y_AXIS| 方法详细信息 |
|---|
public int getMaximumZoneSize()
public void setMaximumZoneSize(int size)
size - 在试图将分区拆分成更小的分区前,此分区能显示的字符数。public int getMaxZonesLoaded()
public void setMaxZonesLoaded(int mzl)
mzl 小于 1,此方法将抛出 IllegalArgumentException。
mzl - 能主动加载的所需最大分区数,必须大于 0
IllegalArgumentException - 如果 mzl < 1protected void zoneWasLoaded(View zone)
zone - 刚刚加载的子视图protected void unloadZone(View zone)
zone - 需要设置成卸载状态的子视图。protected boolean isZoneLoaded(View zone)
protected View createZone(int p0,
int p1)
p0 - 所需分区的开始处。此参数应 >= getStartOffset() 且 < getEndOffset()。此值也应 < p1。p1 - 所需分区的结尾。此参数应 > getStartOffset() 且 <= getEndOffset()。此值也应 > p0。protected void loadChildren(ViewFactory f)
setParent 方法调用。实现此方法以不直接加载任何子级(因为它们由分区创建)。此方法创建了初始的分区集。但是在试图显示分区或执行模型/视图坐标转换之前,并不实际组装这些分区。
CompositeView 中的 loadChildrenf - 视图工厂CompositeView.setParent(javax.swing.text.View)protected int getViewIndexAtPosition(int pos)
CompositeView 中的 getViewIndexAtPositionpos - 位置,该值 >= 0
protected boolean updateChildren(DocumentEvent.ElementChange ec,
DocumentEvent e,
ViewFactory f)
View 中的 updateChildrenec - 此视图所负责的元素的更改信息。如果调用此方法,该参赛不应当为 nulle - 来自关联文档的变化信息f - 用于构建子视图的工厂
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory),
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory),
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
View 中的 insertUpdatechanges - 来自关联文档的更改信息a - 视图的当前分配f - 视图有子级时用于重建的工厂View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
View 中的 removeUpdatechanges - 来自相关文档的更改信息a - 视图的当前分配区域f - 用于重建的工厂(如果该视图有子级)View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。