java.lang.Object
javax.swing.text.View
javax.swing.text.AsyncBoxView
- 所有已实现的接口:
SwingConstants
一个异步布局的盒子。这有助于通过不对其进行任何布局来保持 GUI 事件线程的移动。布局是在子视图上的操作粒度上完成的。在为布局的某个部分(可能耗时的操作)访问每个子视图后,可以放弃剩余的任务,或者可以接手新的更高优先级的任务(即为同步请求或可见区域提供服务)。
在访问子视图时,会在关联文档上获取读锁,以便模型在访问时保持稳定。
- 自从:
- 1.3
-
内部类总结
内部类修饰符和类型类描述class一个类,用于在局部区域周围进行更改时管理局部区域中子视图的有效位置。class表示子视图布局状态的记录。 -
字段摘要
字段在类 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 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述protected AsyncBoxView.ChildState通过此方法创建新的 ChildState 记录,以允许子类扩展 ChildState 记录以执行/保存更多操作。protected void将首选项中的更改向上发布到父视图。float获取视图周围边距的底部。getChildAllocation(int index, Shape a) 获取给定子视图的分配。protected AsyncBoxView.ChildStategetChildState(int index) 获取表示给定索引处子项的布局状态的对象。protected boolean目前估计的主要跨度是多少?protected floatgetInsetSpan(int axis) 沿insets占据的轴获取跨度。protected LayoutQueue获取队列以用于布局。float获取视图周围边距的左侧部分。int获取主轴(子级平铺的轴)。floatgetMaximumSpan(int axis) 确定此视图沿轴的最大跨度。floatgetMinimumSpan(int axis) 确定此视图沿轴的最小跨度。int获取短轴(与平铺轴正交的轴)。intgetNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) 提供一种方法来确定下一个可能放置插入符号的可视化模型位置。floatgetPreferredSpan(int axis) 确定此视图沿轴的首选跨度。float获取视图周围边距的正确部分。float获取视图周围边距的顶部。getView(int n) 获取第 n 个子视图。int返回此视图中的视图数。intgetViewIndex(int pos, Position.Bias b) 返回表示模型中给定位置的子视图索引。protected intgetViewIndexAtPosition(int pos, Position.Bias b) 获取表示模型中给定位置的子视图索引。protected void加载所有子项以初始化视图。protected voidmajorRequirementChange(AsyncBoxView.ChildState cs, float delta) 要求沿长轴发生了变化。protected void要求沿短轴发生变化。modelToView(int pos, Shape a, Position.Bias b) 提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。void使用给定的分配和渲染表面渲染视图。voidpreferenceChanged(View child, boolean width, boolean height) 子视图可以在父视图上调用它以指示首选项已更改并且应该重新考虑布局。void调用超类更新子视图,并更新子视图的状态记录。voidsetBottomInset(float i) 设置视图周围边距的底部。protected voidsetEstimatedMajorSpan(boolean isEstimated) 设置 estimatedMajorSpan 属性以确定是否应将主要跨度视为正在估计。voidsetLeftInset(float i) 设置视图周围边距的左侧部分。void设置视图的父级。voidsetRightInset(float i) 设置视图周围边距的右侧部分。voidsetSize(float width, float height) 设置视图的大小。voidsetTopInset(float i) 设置视图周围边距的顶部。protected void更新布局以响应从模型接收到的更改通知。intviewToModel(float x, float y, Shape a, Position.Bias[] biasReturn) 提供从视图坐标空间到模型的逻辑坐标空间的映射。在类 javax.swing.text.View 中声明的方法
append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getResizeWeight, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, remove, removeAll, removeUpdate, updateChildren, viewToModel
-
字段详细信息
-
locator
管理子项偏移量的对象。管理子位置的所有锁定都在此对象上。
-
-
构造方法详细信息
-
AsyncBoxView
构造一个进行异步布局的框视图。- 参数:
elem- 要表示的模型元素axis- 平铺的轴。这可以是 X_AXIS 或 Y_AXIS。
-
-
方法详情
-
getMajorAxis
public int getMajorAxis()获取主轴(子级平铺的轴)。这将具有 X_AXIS 或 Y_AXIS 的值。- 返回:
- 长轴
-
getMinorAxis
public int getMinorAxis()获取短轴(与平铺轴正交的轴)。这将具有 X_AXIS 或 Y_AXIS 的值。- 返回:
- 短轴
-
getTopInset
public float getTopInset()获取视图周围边距的顶部。- 返回:
- 视图周围边距的顶部
-
setTopInset
public void setTopInset(float i) 设置视图周围边距的顶部。- 参数:
i- insets的值
-
getBottomInset
public float getBottomInset()获取视图周围边距的底部。- 返回:
- 视图周围边距的底部
-
setBottomInset
public void setBottomInset(float i) 设置视图周围边距的底部。- 参数:
i- insets的值
-
getLeftInset
public float getLeftInset()获取视图周围边距的左侧部分。- 返回:
- 视图周围边距的左侧部分
-
setLeftInset
public void setLeftInset(float i) 设置视图周围边距的左侧部分。- 参数:
i- insets的值
-
getRightInset
public float getRightInset()获取视图周围边距的正确部分。- 返回:
- 视图周围边距的右侧部分
-
setRightInset
public void setRightInset(float i) 设置视图周围边距的右侧部分。- 参数:
i- insets的值
-
getInsetSpan
protected float getInsetSpan(int axis) 沿insets占据的轴获取跨度。- 参数:
axis- 确定总内插的轴,X_AXIS 或 Y_AXIS。- 返回:
- insets占据的沿轴的跨度
- 自从:
- 1.4
-
setEstimatedMajorSpan
protected void setEstimatedMajorSpan(boolean isEstimated) 设置 estimatedMajorSpan 属性以确定是否应将主要跨度视为正在估计。如果此属性为真,则沿长轴的 setSize 值将更改沿长轴的要求,增量更改将被忽略,直到所有子项都已更新(这将导致该属性自动设置为假)。如果该属性为假,则 majorSpan 的值将被认为是准确的,并且增量更改将在计算时添加到总数中。- 参数:
isEstimated- estimatedMajorSpan 属性的新值- 自从:
- 1.4
-
getEstimatedMajorSpan
protected boolean getEstimatedMajorSpan()目前估计的主要跨度是多少?- 返回:
- 当前估计的主要跨度是否
- 自从:
- 1.4
-
getChildState
获取表示给定索引处子项的布局状态的对象。- 参数:
index- 子索引。这应该是一个 >= 0 且 < getViewCount() 的值。- 返回:
- 表示给定索引处子级的布局状态的对象
-
getLayoutQueue
获取队列以用于布局。- 返回:
- 用于布局的队列
-
createChildState
通过此方法创建新的 ChildState 记录,以允许子类扩展 ChildState 记录以执行/保存更多操作。- 参数:
v- 视图- 返回:
- 新的子状态
-
majorRequirementChange
要求沿长轴发生了变化。当线程完成获取子视图新首选项时,它由为给定 ChildState 对象进行布局的线程调用。通常这将是布局线程,但如果它试图立即更新某些内容(例如执行模型/视图转换),则可能是事件线程。这是为了将主轴标记为已更改,以便将来检查是否需要将需求发布到父视图时将考虑主轴。如果未估计沿主轴的跨度,则由给定的增量更新以反映增量变化。如果估计主要跨度,则忽略增量。
- 参数:
cs- 子状态delta- 三角洲
-
minorRequirementChange
要求沿短轴发生变化。当线程完成获取子视图新首选项时,它由为给定 ChildState 对象进行布局的线程调用。通常这将是布局线程,但如果它试图立即更新某些内容(例如执行模型/视图转换),则可能是 GUI 线程。- 参数:
cs- 子状态
-
flushRequirementChanges
protected void flushRequirementChanges()将首选项中的更改向上发布到父视图。这通常由布局线程调用。 -
replace
调用超类更新子视图,并更新子视图的状态记录。预期在模型上持有写锁时调用此函数,以便不会发生与布局线程的交互(即布局线程在执行任何操作之前获取读锁)。 -
loadChildren
加载所有子项以初始化视图。这是由setParent方法调用的。子类可以重新实现它以不同的方式初始化它们的子视图。默认实现为每个子元素创建一个子视图。通常,在更改子项时,会在 Document 上持有写锁,以确保渲染和布局线程的安全。异常是当视图被初始化为表示现有元素时(通过此方法),因此在我们初始化时它会同步以排除 preferenceChanged。
- 参数:
f- 视图工厂- 参见:
-
getViewIndexAtPosition
获取表示模型中给定位置的子视图索引。这是为了在每个子元素都有一个子视图的情况下获取视图。- 参数:
pos- 位置 >= 0b- 位置偏差- 返回:
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为 -1
-
updateLayout
更新布局以响应从模型接收到的更改通知。这是为了记录 ChildLocator 上的更改,以便正确计算子项的偏移量。- 重写:
updateLayout在类View中- 参数:
ec- 对此视图负责的元素的更改(如果没有更改,则可能为 null)。e- 来自关联文档的更改信息a- 视图的当前分配- 参见:
-
setParent
设置视图的父级。如果此视图还没有子项,则重新实现它以提供超类行为以及调用loadChildren方法。不应在构造函数中加载子项,因为设置父项的行为可能会导致他们尝试向上搜索层次结构(例如获取托管容器)。如果此视图有子视图(视图正在从视图层次结构中的一个位置移动到另一个位置),则不会调用loadChildren方法。 -
preferenceChanged
子视图可以在父视图上调用它以指示首选项已更改并且应该重新考虑布局。这被重新实现以在布局线程上排队新工作。此方法通过子线程从多个线程获取消息。- 重写:
preferenceChanged在类View中- 参数:
child- 子视图width- 如果宽度首选项已更改,则为真height- 如果高度偏好已更改,则为真- 参见:
-
setSize
public void setSize(float width, float height) 设置视图的大小。如果视图缓存任何布局信息,这应该会导致视图布局。由于主轴是异步更新的,并且应该是平铺子项的总和,因此忽略主轴的调用。由于短轴是灵活的,如果次跨度发生变化,工作会排队调整子项的大小。
-
paint
使用给定的分配和渲染表面渲染视图。这是为了确定要渲染的所需区域(即未剪切区域)是否是最新的。如果是最新的,则呈现子项。如果不是最新的,构建所需区域的任务将作为高优先级任务放置在布局队列中。如果准备好,这会通过渲染来保持事件线程移动,如果没有准备好则推迟到稍后的时间(因为可以重新安排绘制请求)。
-
getPreferredSpan
public float getPreferredSpan(int axis) 确定此视图沿轴的首选跨度。- 指定者:
getPreferredSpan在类View中- 参数:
axis- 可以是 View.X_AXIS 或 View.Y_AXIS- 返回:
- 视图要渲染到 >= 0 的跨度。通常,视图被告知要渲染到返回的跨度中,尽管不能保证。父级可以选择调整大小或打破视图。
- 抛出:
IllegalArgumentException- 对于无效的轴类型
-
getMinimumSpan
public float getMinimumSpan(int axis) 确定此视图沿轴的最小跨度。- 重写:
getMinimumSpan在类View中- 参数:
axis- 可以是 View.X_AXIS 或 View.Y_AXIS- 返回:
- 视图要渲染到 >= 0 的跨度。通常,视图被告知要渲染到返回的跨度中,尽管不能保证。父级可以选择调整大小或打破视图。
- 抛出:
IllegalArgumentException- 对于无效的轴类型- 参见:
-
getMaximumSpan
public float getMaximumSpan(int axis) 确定此视图沿轴的最大跨度。- 重写:
getMaximumSpan在类View中- 参数:
axis- 可以是 View.X_AXIS 或 View.Y_AXIS- 返回:
- 视图要渲染到 >= 0 的跨度。通常,视图被告知要渲染到返回的跨度中,尽管不能保证。父级可以选择调整大小或打破视图。
- 抛出:
IllegalArgumentException- 对于无效的轴类型- 参见:
-
getViewCount
public int getViewCount()返回此视图中的视图数。由于默认不是复合视图,因此返回 0。- 重写:
getViewCount在类View中- 返回:
- 观看次数 >= 0
- 参见:
-
getView
获取第 n 个子视图。由于默认情况下没有子级,因此返回 null。 -
getChildAllocation
获取给定子视图的分配。这使得能够找出各种视图所在的位置,而无需假设视图存储它们的位置。这将返回 null,因为默认情况下没有任何子视图。- 重写:
getChildAllocation在类View中- 参数:
index- 孩子的索引,>= 0 && < getViewCount()a- 分配给这个视图。- 返回:
- 分配给子级
-
getViewIndex
返回表示模型中给定位置的子视图索引。默认情况下,视图没有子项,因此实现返回 -1 以指示任何位置都没有有效的子索引。- 重写:
getViewIndex在类View中- 参数:
pos- 位置 >= 0b- 偏差- 返回:
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为 -1
- 自从:
- 1.3
-
modelToView
提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。- 指定者:
modelToView在类View中- 参数:
pos- 要转换的位置 >= 0a- 要渲染到的分配区域b- 偏移表示的前一个字符或下一个字符的偏差,以防该位置是两个视图的边界。- 返回:
- 返回给定位置的边界框
- 抛出:
BadLocationException- 如果给定位置不代表相关文档中的有效位置IllegalArgumentException- 对于无效的偏置参数- 参见:
-
viewToModel
提供从视图坐标空间到模型的逻辑坐标空间的映射。将填充 biasReturn 参数以指示给定的点更接近模型中的下一个字符或模型中的前一个字符。这预计将由 GUI 线程调用,在关联模型上持有读锁。它的实现是为了定位子视图并通过锁定 ChildLocator 对象确定其分配,并通过锁定 ChildState 对象在子视图上调用 viewToModel 以避免与布局线程交互。
- 指定者:
viewToModel在类View中- 参数:
x- X 坐标 >= 0y- Y 坐标 >= 0a- 要渲染到的分配区域biasReturn- 返回的偏差- 返回:
- 模型中最能代表视图中给定点的位置 >= 0。将填充 biasReturn 参数以指示给定点更接近模型中的下一个字符或模型中的前一个字符。
-
getNextVisualPositionFrom
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias [] biasRet) throws BadLocationException 提供一种方法来确定下一个可能放置插入符号的可视化模型位置。某些视图可能不可见,它们可能与模型中的顺序不同,或者它们可能不允许访问模型中的某些位置。该方法可以指定一个位置在 >=0 的范围内进行转换。如果值为-1,将自动计算位置。如果值 < -1,将抛出BadLocationException。- 重写:
getNextVisualPositionFrom在类View中- 参数:
pos- 要转换的位置b- 偏差a- 要渲染到的分配区域direction- 从当前位置开始的方向,可以被认为是通常在键盘上找到的箭头键;这可能是以下之一:SwingConstants.WESTSwingConstants.EASTSwingConstants.NORTHSwingConstants.SOUTH
biasRet- 包含已检查偏差的数组- 返回:
- 模型中最能代表下一个位置视觉位置的位置
- 抛出:
BadLocationException- 给定位置不是文档中的有效位置IllegalArgumentException- 如果direction无效
-