public class ZoneView extends BoxView
ZoneView扩展BoxView以提供一个框架,为其子代码实现区域。 这些区域是仅代表ZoneView实例负责的模型的一部分的特殊View实现(此类的实例的子项)。 在尝试显示它们之前,区域不会创建子视图。 盒子形状的视图非常适合这一点,因为:
默认行为由两个属性maxZoneSize和maxZonesLoaded控制。 将maxZoneSize设置为Integer.MAX_VALUE将产生仅导致一个区域的创建。 这将有效地将视图转变为装饰器图案的实现。 将maxZonesLaaded设置为Integer.MAX_VALUE的值将导致区域永远不会被卸载。 为了简单起见,在视图负责的元素的子元素表示的边界上创建区域。 区域可以是任何View实现,但默认实现基于AsyncBoxView,它有效地支持相当大的区域。
View 
       BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXISBOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST| Modifier and Type | Method and Description | 
|---|---|
| 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)
              在加载时由区域调用。 
             | 
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, calculateMinorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layout, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModelgetBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParentappend, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateLayout, viewToModelpublic 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 <1 
           protected 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方法调用的。 
           这被重新实现为不直接加载任何孩子(因为它们是由区域创建的)。 
           此方法创建初始区域集。 
           然而,区域实际上并没有被填充,直到尝试显示它们或进行模型/视图坐标转换。 
          loadChildren在 
            CompositeView 
           f - 视图工厂 
           CompositeView.setParent(javax.swing.text.View) 
           protected int getViewIndexAtPosition(int pos)
getViewIndexAtPosition在 
            CompositeView 
           pos - 位置> = 0 
           protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
updateChildren在 
            View 
           ec - 该视图负责的元素的更改信息。 
            如果调用此方法, null应该为null 
           e - 相关文件的变更信息 
           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)
insertUpdate在 
            View 
           changes - 相关文件的变更信息 
           a - 视图的当前分配 
           f - 工厂用来重建如果视图有孩子 
           View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory) 
           public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
removeUpdate在 
            View 
           changes - 相关文件的更改信息 
           a - 视图的当前分配 
           f - 工厂使用重建如果视图有孩子 
           View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory) 
            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.