java.lang.Object
javax.swing.text.View
javax.swing.text.ComponentView
- 所有已实现的接口:
-
SwingConstants
- 直接已知的子类:
-
FormView
,ObjectView
实现视图接口的组件装饰器。整个元素用于表示组件。这充当了从仅显示的View实现到交互式轻量级组件的网关(即允许将组件嵌入到View层次结构中)。
根据Component.getAlignmentY
返回的值,将组件相对于文本基线放置。对于Swing组件,可以方便地使用JComponent.setAlignmentY
方法设置此值。例如,设置0.75
的值将导致组件的75%位于基线上方,25%位于基线下方。
此类已实现额外的工作,以便在存在多个线程时正常工作(例如,通过确保所有组件访问都在事件线程上执行来实现对模型更改的异步通知)。
使用的组件由createComponent方法的返回值确定。此方法的默认实现是通过调用StyleConstants.getComponent获取元素属性中保存的组件来返回组件。此行为的一个限制是组件不能被多个文本组件使用(即具有共享模型)。子类可以通过实现createComponent来消除此约束,以实际基于属性中包含的某种规范创建组件。html包中的ObjectView类是支持共享模型的多个组件视图的ComponentView实现的示例。
-
Field Summary
Fields declared in class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
Fields declared in interface 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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Component
创建与此视图关联的组件。float
getAlignment
(int axis) 确定此视图沿轴线的期望对齐方式。final Component
获取与视图关联的组件。float
getMaximumSpan
(int axis) 确定此视图沿轴线的最大跨度。float
getMinimumSpan
(int axis) 确定此视图沿轴线的最小跨度。float
getPreferredSpan
(int axis) 确定此视图沿轴线的首选跨度。modelToView
(int pos, Shape a, Position.Bias b) 提供从模型的坐标空间到视图的坐标空间的映射。void
真正的绘制行为自然地发生在组件与其父容器(托管此视图的相同容器)的关联中。void
为子视图设置父级。int
viewToModel
(float x, float y, Shape a, Position.Bias[] bias) 提供从视图坐标空间到模型的逻辑坐标空间的映射。Methods declared in class javax.swing.text.View
append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, removeUpdate, replace, setSize, updateChildren, updateLayout, viewToModel
-
Constructor Details
-
ComponentView
创建一个新的ComponentView对象。- 参数:
-
elem
- 要装饰的元素
-
-
Method Details
-
createComponent
创建与此视图关联的组件。当确定需要新组件时将调用此方法。这可能是由于调用setParent或由于收到属性更改的通知而导致的。- 返回:
- 与此视图关联的组件
-
getComponent
获取与视图关联的组件。- 返回:
- 与视图关联的组件
-
paint
真正的绘制行为自然地发生在组件与其父容器(托管此视图的相同容器)的关联中。这是为了不执行任何操作而实现的。 -
getPreferredSpan
public float getPreferredSpan(int axis) 确定此视图沿轴线的首选跨度。此方法实现为返回Component.getPreferredSize沿感兴趣的轴线返回的值。- 指定者:
-
getPreferredSpan
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 返回:
- 视图希望呈现的跨度>=0。通常会告诉视图呈现返回的跨度,尽管不能保证。父级可能选择调整或打破视图。
- 抛出:
-
IllegalArgumentException
- 对于无效的轴线
-
getMinimumSpan
public float getMinimumSpan(int axis) 确定此视图沿轴线的最小跨度。此方法实现为返回Component.getMinimumSize沿感兴趣的轴线返回的值。- 覆盖:
-
getMinimumSpan
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 返回:
- 视图希望呈现的跨度>=0。通常会告诉视图呈现返回的跨度,尽管不能保证。父级可能选择调整或打破视图。
- 抛出:
-
IllegalArgumentException
- 对于无效的轴线 - 参见:
-
getMaximumSpan
public float getMaximumSpan(int axis) 确定此视图沿轴线的最大跨度。此方法实现为返回Component.getMaximumSize沿感兴趣的轴线返回的值。- 覆盖:
-
getMaximumSpan
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 返回:
- 视图希望呈现的跨度>=0。通常会告诉视图呈现返回的跨度,尽管不能保证。父级可能选择调整或打破视图。
- 抛出:
-
IllegalArgumentException
- 对于无效的轴线 - 参见:
-
getAlignment
public float getAlignment(int axis) 确定此视图沿轴线的期望对齐方式。此方法实现为给出嵌入组件的对齐方式。- 覆盖:
-
getAlignment
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 返回:
- 期望的对齐方式。这应该是一个介于0.0和1.0之间的值,其中0表示在原点对齐,1.0表示远离原点的完整跨度对齐。对齐方式为0.5将是视图的中心。
-
setParent
为子视图设置父级。父级在子视图上调用此方法,告诉子视图其父级是谁,使视图可以访问诸如托管容器之类的内容。首先执行超类行为,然后如果父视图参数非空且尚未创建组件,则调用createComponent。然后,嵌入组件的父级设置为getContainer
返回的值。如果父视图参数为null,则正在清理此视图,因此将组件从其父级中移除。更改组件层次结构将触及组件锁,这是View层次结构中不安全的唯一事物。因此,如果在事件线程上调用,此功能将立即执行,或者如果从另一个线程调用(从异步更新的通知中通知更改),则将在事件队列中排队执行。
-
modelToView
提供从模型的坐标空间到视图的逻辑坐标空间的映射。- 指定者:
-
modelToView
在类View
中 - 参数:
-
pos
- 要转换的位置>=0 -
a
- 分配的区域以呈现 -
b
- 与偏移量表示的前一个字符或下一个字符的偏好相对应,如果位置是两个视图的边界,则b
将具有以下值:Position.Bias.Forward
Position.Bias.Backward
- 返回:
- 返回给定位置的边界框
- 抛出:
-
BadLocationException
- 如果给定位置在关联文档中不表示有效位置 - 参见:
-
viewToModel
提供从视图坐标空间到模型的逻辑坐标空间的映射。- 指定者:
-
viewToModel
在类View
- 参数:
-
x
- X坐标 >=0 -
y
- Y坐标 >=0 -
a
- 分配的渲染区域 -
bias
- 返回的偏好 - 返回值:
- 在模型中最好表示给定视图中点的位置
- 参见:
-