| 
JavaTM 2 Platform Standard Ed. 5.0  | 
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.swing.text.View
javax.swing.text.AsyncBoxView
public class AsyncBoxView
异步执行布局处理的框。此类很有用,因为它可通过不在 GUI 事件线程中执行任何布局处理来保持该线程的持续活动。布局是在子视图的操作粒度上完成的。访问某部分布局的每个子视图后(可能是耗时的操作),可放弃剩余的任务,或者可执行新的、具有更高优先级的任务(如响应一个同步请求或对一个可见区域进行操作)。
访问子视图的同时,要获得关联文档上的读取锁定,这样该模型在被访问时是稳定的。
| 嵌套类摘要 | |
|---|---|
 class | 
AsyncBoxView.ChildLocator
该类在本地化区域发生更改时,管理该本地化区域中子视图的有效位置。  | 
 class | 
AsyncBoxView.ChildState
表示子视图布局状态的记录。  | 
| 字段摘要 | |
|---|---|
protected  AsyncBoxView.ChildLocator | 
locator
这是管理子视图偏移量的对象。  | 
| 从类 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 | 
| 构造方法摘要 | |
|---|---|
AsyncBoxView(Element elem,
             int axis)
构造执行异步布局处理的 BoxView。  | 
|
| 方法摘要 | |
|---|---|
protected  AsyncBoxView.ChildState | 
createChildState(View v)
通过此方法创建新的 ChildState 记录,以允许扩展 ChildState 记录的子类执行/保存更多状态。  | 
protected  void | 
flushRequirementChanges()
将首选项中的更改向上发布到父视图。  | 
 float | 
getBottomInset()
获得视图四周底部的空白部分。  | 
 Shape | 
getChildAllocation(int index,
                   Shape a)
获取给定子视图的分配区域。  | 
protected  AsyncBoxView.ChildState | 
getChildState(int index)
获取对象,该对象表示在给定索引位置的子视图的布局状态。  | 
protected  boolean | 
getEstimatedMajorSpan()
主跨距当前是估计值吗?  | 
protected  float | 
getInsetSpan(int axis)
获取 insets 所占据的沿某个轴的跨距。  | 
protected  LayoutQueue | 
getLayoutQueue()
获取用于布局处理的队列。  | 
 float | 
getLeftInset()
获得视图四周左侧的空白部分。  | 
 int | 
getMajorAxis()
获取主轴(即子级平铺时沿用的轴)。  | 
 float | 
getMaximumSpan(int axis)
确定此视图沿某轴的最大跨距。  | 
 float | 
getMinimumSpan(int axis)
确定此视图沿某轴的最小跨距。  | 
 int | 
getMinorAxis()
获取辅轴(与平铺轴垂直的轴)。  | 
 int | 
getNextVisualPositionFrom(int pos,
                          Position.Bias b,
                          Shape a,
                          int direction,
                          Position.Bias[] biasRet)
提供确定下一个以可视化形式表示的模型位置的方法,用户可以在此位置放置一个插入符。  | 
 float | 
getPreferredSpan(int axis)
确定此视图沿某轴的首选跨距。  | 
 float | 
getRightInset()
获得视图四周右侧的空白部分。  | 
 float | 
getTopInset()
获得视图四周顶部的空白部分。  | 
 View | 
getView(int n)
获得第 n 个子视图。  | 
 int | 
getViewCount()
返回此视图中的视图数。  | 
 int | 
getViewIndex(int pos,
             Position.Bias b)
返回该模型中表示给定位置的子视图索引。  | 
protected  int | 
getViewIndexAtPosition(int pos,
                       Position.Bias b)
获取此模型中表示给定位置的子视图索引。  | 
protected  void | 
loadChildren(ViewFactory f)
加载初始化该视图的所有子级。  | 
protected  void | 
majorRequirementChange(AsyncBoxView.ChildState cs,
                       float delta)
沿主轴上的要求更改。  | 
protected  void | 
minorRequirementChange(AsyncBoxView.ChildState cs)
沿辅轴上的要求更改。  | 
 Shape | 
modelToView(int pos,
            Shape a,
            Position.Bias b)
提供从文档模型坐标空间到所映射的视图坐标空间的映射。  | 
 void | 
paint(Graphics g,
      Shape alloc)
使用给定的分配和呈现表面呈现该视图。  | 
 void | 
preferenceChanged(View child,
                  boolean width,
                  boolean height)
子视图可以在父级上调用此方法,以指示首选项已更改并且应该重新考虑布局。  | 
 void | 
replace(int offset,
        int length,
        View[] views)
调用超类以更新子视图,并且更新子视图的状态记录。  | 
 void | 
setBottomInset(float i)
设置视图四周底部的空白部分。  | 
protected  void | 
setEstimatedMajorSpan(boolean isEstimated)
设置 estimatedMajorSpan 属性,它确定是否应该将主跨距视为估计值。  | 
 void | 
setLeftInset(float i)
设置视图四周左侧的空白部分。  | 
 void | 
setParent(View parent)
设置视图的父级。  | 
 void | 
setRightInset(float i)
设置视图四周右侧的空白部分。  | 
 void | 
setSize(float width,
        float height)
设置视图的大小。  | 
 void | 
setTopInset(float i)
设置视图四周顶部的空白部分。  | 
protected  void | 
updateLayout(DocumentEvent.ElementChange ec,
             DocumentEvent e,
             Shape a)
更新布局,以响应从模型接收的更改通知。  | 
 int | 
viewToModel(float x,
            float y,
            Shape a,
            Position.Bias[] biasReturn)
提供从视图坐标空间到模型逻辑坐标空间的映射。  | 
| 从类 java.lang.Object 继承的方法 | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| 字段详细信息 | 
|---|
protected AsyncBoxView.ChildLocator locator
| 构造方法详细信息 | 
|---|
public AsyncBoxView(Element elem,
                    int axis)
elem - 要表示的模型元素axis - 平铺时沿用的轴。这可以是 X_AXIS 或 Y_AXIS 之一。| 方法详细信息 | 
|---|
public int getMajorAxis()
public int getMinorAxis()
public float getTopInset()
public void setTopInset(float i)
i - inset 值public float getBottomInset()
public void setBottomInset(float i)
i - inset 值public float getLeftInset()
public void setLeftInset(float i)
i - inset 值public float getRightInset()
public void setRightInset(float i)
i - inset 值protected float getInsetSpan(int axis)
axis - 确定总的 insets 所沿用的轴,为 X_AXIS 或 Y_AXIS 之一。protected void setEstimatedMajorSpan(boolean isEstimated)
protected boolean getEstimatedMajorSpan()
protected AsyncBoxView.ChildState getChildState(int index)
index - 子视图索引。这应该是一个 >= 0 且 < getViewCount() 的值。protected LayoutQueue getLayoutQueue()
protected AsyncBoxView.ChildState createChildState(View v)
protected void majorRequirementChange(AsyncBoxView.ChildState cs,
                                      float delta)
实现此方法以便将主轴标记为已更改,所以如果需要将要求发布到父视图,后续的检查可查看是否将主轴考虑在内。如果沿主轴的跨距不是估计值,则通过给定的 delta 更新它,以反映递增量。如果主跨距是估计值,则忽略 delta。
protected void minorRequirementChange(AsyncBoxView.ChildState cs)
protected void flushRequirementChanges()
public void replace(int offset,
                    int length,
                    View[] views)
View 中的 replaceoffset - 子视图中的起始偏移量,该值 >= 0length - 要替换的现有视图数,该值 >= 0views - 要插入的子视图protected void loadChildren(ViewFactory f)
通常在更改子元素时 Document 上会持有写入锁定,这可保持呈现和布局线程的安全。例外情况是初始化视图以表示现有的元素时(通过此方法),所以在进行初始化的时候它是同步的,以将 preferenceChanged 排除在外。
f - 视图工厂setParent(javax.swing.text.View)
protected int getViewIndexAtPosition(int pos,
                                     Position.Bias b)
pos - 位置,该值 >= 0
protected void updateLayout(DocumentEvent.ElementChange ec,
                            DocumentEvent e,
                            Shape a)
View 中的 updateLayoutec - 对此视图所负责的元素的更改(如果没有更改则可能为 null)。e - 来自相关文档的更改信息a - 该视图的当前分配区域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 setParent(View parent)
loadChildren 方法。子级不应在构造方法中加载,因为设置父级的操作可能会导致其尝试向上搜索层次结构(例如获得宿主 Container)。如果此视图具有子视图(将该视图从视图层次结构中的一个位置移到另一个位置),则不调用 loadChildren 方法。
View 中的 setParentparent - 视图的父级,如果没有,则为 null
public void preferenceChanged(View child,
                              boolean width,
                              boolean height)
View 中的 preferenceChangedchild - 子视图width - 如果已更改宽度首选项,则为 trueheight - 如果已更改高度首选项,则为 trueJComponent.revalidate()
public void setSize(float width,
                    float height)
由于主轴是异步更新的,并且应该是已平铺子级的和,所以对于主轴应忽略该调用。由于辅轴是很灵活的,所以如果辅跨距更改了,则将工作放入队列以调整子视图的大小。
View 中的 setSizewidth - 宽度,该值 >= 0height - 高度,该值 >= 0
public void paint(Graphics g,
                  Shape alloc)
实现此方法可确定要呈现的所需区域(如非剪贴区域)是否为最新的。如果是最新的,则呈现子视图。如果不是最新的,则将构建所需区域的任务作为最高优先级的任务放入布局队列中。在准备就绪时,此方法通过事件线程和渲染来持续运行,在尚未准备就绪时推迟一段时间(因为可以重新安排绘制请求)。
View 中的 paintg - 要使用的呈现表面alloc - 要在其中进行呈现的已分配区域View.paint(java.awt.Graphics, java.awt.Shape)public float getPreferredSpan(int axis)
View 中的 getPreferredSpanaxis - 可以为 View.X_AXIS 或 View.Y_AXIS
IllegalArgumentException - 如果轴类型无效View.getPreferredSpan(int)public float getMinimumSpan(int axis)
View 中的 getMinimumSpanaxis - 可以为 View.X_AXIS 或 View.Y_AXIS
IllegalArgumentException - 如果轴类型无效View.getPreferredSpan(int)public float getMaximumSpan(int axis)
View 中的 getMaximumSpanaxis - 可以为 View.X_AXIS 或 View.Y_AXIS
IllegalArgumentException - 如果轴类型无效View.getPreferredSpan(int)public int getViewCount()
View 中的 getViewCountView.getViewCount()public View getView(int n)
View 中的 getViewn - 要获得的视图编号,该值 >= 0 && < getViewCount()
public Shape getChildAllocation(int index,
                                Shape a)
View 中的 getChildAllocationindex - 子视图的索引,该值 >= 0 && < getViewCount()a - 此视图的分配区域。
public int getViewIndex(int pos,
                        Position.Bias b)
View 中的 getViewIndexpos - 位置,该值 >= 0
public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException
View 中的 modelToViewpos - 要转换的位置,该值 >= 0a - 要呈现于其中的已分配区域b - 在该位置是两个视图的边界时,为偏向前一个字符或下一个字符的偏差,由偏移量表示。
BadLocationException - 如果给定的位置不表示关联文档内的有效位置
IllegalArgumentException - 如果 bias 参数无效View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public int viewToModel(float x,
                       float y,
                       Shape a,
                       Position.Bias[] biasReturn)
预计由 GUI 线程调用此方法,在关联的模型上保持读取锁定。实现此方法可定位子视图,并通过对 ChildLocator 对象执行锁定来确定其分配,以及通过对 ChildLocator 对象执行锁定对子视图调用 viewToModel,以避免与布局线程相互干扰。
View 中的 viewToModelx - X 坐标,该值 >= 0y - Y 坐标,该值 >= 0a - 要在其中进行呈现的已分配区域
public int getNextVisualPositionFrom(int pos,
                                     Position.Bias b,
                                     Shape a,
                                     int direction,
                                     Position.Bias[] biasRet)
                              throws BadLocationException
View 中的 getNextVisualPositionFrompos - 要转换的位置,该值 >= 0a - 要在其中进行呈现的已分配区域direction - 从当前位置开始的方向,可以将它们设想为通常可在键盘上找到的箭头键;可为下列值: 
  SwingConstants.WEST SwingConstants.EAST SwingConstants.NORTH SwingConstants.SOUTH  
  biasRet - 包含要检查的偏差的数组
BadLocationException
IllegalArgumentException - 如果 direction 无效
  | 
JavaTM 2 Platform Standard Ed. 5.0  | 
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。