所有类


javax.swing.text
类 CompositeView

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 集的子类应使用 replace(int, int, javax.swing.text.View[]) 方法。由于 ViewDocumentListener 通知过程中调用 replace,所以通常不需要直接调用 replace

虽然 CompositeView 不会对其子 View 施加布局策略,但它允许插入将包含的子 View。插入内容可通过 setInsets(short, short, short, short)setParagraphInsets(javax.swing.text.AttributeSet) 进行设置。

除了 View 的抽象方法之外,CompositeView 的子类还需要重写:


字段摘要
 
从类 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
 
构造方法摘要
CompositeView(Element elem)
          为给定元素构造一个 CompositeView
 
方法摘要
protected abstract  voidchildAllocation(int index, Rectangle a)
          返回给定子级的分配区域。
protected  booleanflipEastAndWestAtEnds(int position, Position.Bias bias)
          确定下一个视图放置的朝向。
protected  shortgetBottomInset()
          获取底部 inset。
 ShapegetChildAllocation(int index, Shape a)
          获取要在其中呈现的给定子视图的分配区域。
protected  RectanglegetInsideAllocation(Shape a)
          将分配给视图的不可变分配区域转换为表示内部分配区域的可变分配区域(即给定分配区域的边界,其顶部、左部、底部和右部的 insets 已移除)。
protected  shortgetLeftInset()
          获取左部 inset。
protected  intgetNextEastWestVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
          返回光标的下一个可视位置,可以在东或在西。
protected  intgetNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
          返回光标的下一个可视位置,可以在北也可以在南。
 intgetNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
          提供一种方法来确定下一个以可视化形式表示的模型位置,用户可以在此位置放置一个插入符。
protected  shortgetRightInset()
          获取右部 inset。
protected  shortgetTopInset()
          获取顶部 inset。
 ViewgetView(int n)
          返回该容器中的第 n 个视图。
protected abstract  ViewgetViewAtPoint(int x, int y, Rectangle alloc)
          获取位于给定坐标的子视图。
protected  ViewgetViewAtPosition(int pos, Rectangle a)
          获取表示模型中给定位置的子视图。
 intgetViewCount()
          返回此视图的子视图数。
 intgetViewIndex(int pos, Position.Bias b)
          返回表示模型中给定位置的子视图索引。
protected  intgetViewIndexAtPosition(int pos)
          获取表示模型中给定位置的子视图索引。
protected abstract  booleanisAfter(int x, int y, Rectangle alloc)
          测试一个点是否位于矩形范围之后。
protected abstract  booleanisBefore(int x, int y, Rectangle alloc)
          测试一个点是否位于矩形范围之前。
protected  voidloadChildren(ViewFactory f)
          加载所有的子级以初始化该视图。
 ShapemodelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
          提供从文档模型坐标空间到所映射的视图坐标空间的映射。
 ShapemodelToView(int pos, Shape a, Position.Bias b)
          提供从文档模型坐标空间到所映射的视图坐标空间的映射。
 voidreplace(int offset, int length, View[] views)
          替换子视图。
protected  voidsetInsets(short top, short left, short bottom, short right)
          设置视图的 insets。
protected  voidsetParagraphInsets(AttributeSet attr)
          按照给定属性中指定的段落属性设置 insets。
 voidsetParent(View parent)
          设置此视图的父级。
 intviewToModel(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
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

CompositeView

public CompositeView(Element elem)
为给定元素构造一个 CompositeView

参数:
elem - 此视图负责的元素
方法详细信息

loadChildren

protected void loadChildren(ViewFactory f)
加载所有的子级以初始化该视图。它由 setParent(javax.swing.text.View) 方法调用。子类可重新实现它以便按不同的方式初始化其子视图。默认实现为每个子元素创建一个子视图。

参数:
f - 视图工厂
另请参见:
setParent(javax.swing.text.View)

setParent

public void setParent(View parent)
设置此视图的父级。重新实现此方法可提供超类行为,并可在此视图无子级的情况下调用 loadChildren 方法。不应在构造方法中加载子级,因为设置父级的动作可能引起它们试图沿层次结构向上搜索,例如,要获得承载 Container。如果此视图有子级(视图从视图层次结构中的一个位置移动到另一个位置),则不调用 loadChildren 方法。

覆盖:
View 中的 setParent
参数:
parent - 视图的父级,如果没有则为 null

getViewCount

public int getViewCount()
返回此视图的子视图数。

覆盖:
View 中的 getViewCount
返回:
视图数,该数量 >= 0
另请参见:
getView(int)

getView

public View getView(int n)
返回该容器中的第 n 个视图。

覆盖:
View 中的 getView
参数:
n - 需要的视图数量,该数量 >= 0 且 < getViewCount()
返回:
索引为 n 的视图

replace

public void replace(int offset,
                    int length,
                    View[] views)
替换子视图。如果没有要移除的视图,此方法视为插入操作。如果没有要添加的视图,此方法视为移除操作。被移除的视图的父级将被设置为 null,并且移除了对它们的内部引用,所以它们有可能被作为垃圾回收。

覆盖:
View 中的 replace
参数:
offset - 要插入新视图的子视图的起始索引;该索引 >= 0 且 <= getViewCount
length - 要移除的现有子视图数;此值应 >= 0 且 <= (getViewCount() - offset)
views - 要添加的子视图;此值可以为 null,表示不添加任何子级(对移除有用)

getChildAllocation

public Shape getChildAllocation(int index,
                                Shape a)
获取要在其中呈现的给定子视图的分配区域。这有助于获得各个视图所处的位置。

覆盖:
View 中的 getChildAllocation
参数:
index - 子级的索引,该索引 >= 0 且 < getViewCount()
a - 对此视图的分配区域
返回:
子级的分配区域

modelToView

public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException
提供从文档模型坐标空间到所映射的视图坐标空间的映射。

指定者:
View 中的 modelToView
参数:
pos - 要转换的位置,该位置 >= 0
a - 要在其中呈现的已分配区域
b - 一个偏移值,可以是 Position.Bias.ForwardPosition.Bias.Backward
返回:
给定位置的边界框
抛出:
BadLocationException - 如果给定位置不是相关文档中的有效位置
另请参见:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)