- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.ComponentView
-
- 实现的所有接口
-
SwingConstants
- 已知直接子类:
-
FormView
,ObjectView
public class ComponentView extends View
实现视图接口的组件装饰器。 整个元素用于表示组件。 这充当从仅显示的View实现到交互式轻量级组件的网关(即,它允许将组件嵌入到View层次结构中)。根据
Component.getAlignmentY
返回的值,相对于文本基线放置组件。 对于Swing组件,可以使用方法JComponent.setAlignmentY
方便地设置此值。 例如,设置值0.75
将导致75%的组件高于基线,25%的组件低于基线。通过确保在事件线程上完成所有组件访问,实现此类以执行在存在多个线程时正常工作所需的额外工作(例如,来自模型更改的异步通知)。
使用的组件由createComponent方法的返回值确定。 此方法的默认实现是返回作为元素属性保存的组件(通过调用StyleConstants.getComponent)。 此行为的限制是组件不能由多个文本组件使用(即使用共享模型)。 子类可以通过实现createComponent来实现基于属性中包含的某种规范来实际创建组件,从而删除此约束。 html包中的ObjectView类是支持共享模型的多个组件视图的ComponentView实现的示例。
-
-
字段汇总
-
声明的属性在类 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
-
-
构造方法摘要
构造方法 构造器 描述 ComponentView(Element elem)
创建一个新的ComponentView对象。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 protected Component
createComponent()
创建与此视图关联的组件。float
getAlignment(int axis)
确定此视图沿轴的所需对齐方式。Component
getComponent()
获取与视图关联的组件。float
getMaximumSpan(int axis)
确定此视图沿轴的最大跨度。float
getMinimumSpan(int axis)
确定此视图沿轴的最小跨度。float
getPreferredSpan(int axis)
确定此视图沿轴的首选跨度。Shape
modelToView(int pos, Shape a, Position.Bias b)
提供从模型的坐标空间到视图的坐标空间的映射。void
paint(Graphics g, Shape a)
真实的绘制行为自然发生在组件与其父容器(托管此视图的同一容器)之间的关联中。void
setParent(View p)
设置子视图的父级。int
viewToModel(float x, float y, Shape a, Position.Bias[] bias)
提供从视图坐标空间到模型的逻辑坐标空间的映射。-
声明方法的类 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
-
-
-
-
构造方法详细信息
-
ComponentView
public ComponentView(Element elem)
创建一个新的ComponentView对象。- 参数
-
elem
- 要装饰的元素
-
-
方法详细信息
-
createComponent
protected Component createComponent()
创建与此视图关联的组件。 当确定需要新组件时,将调用此方法。 这可能是由于调用setParent或者是通知属性已更改而导致的。- 结果
- 与此视图关联的组件
-
getComponent
public final Component getComponent()
获取与视图关联的组件。- 结果
- 与视图关联的组件
-
paint
public void paint(Graphics g, Shape a)
真实的绘制行为自然发生在组件与其父容器(托管此视图的同一容器)之间的关联中。 这是为了什么也不做。- Specified by:
-
paint
在类View
- 参数
-
g
- 图形上下文 -
a
- 形状 - 另请参见:
-
View.paint(java.awt.Graphics, java.awt.Shape)
-
getPreferredSpan
public float getPreferredSpan(int axis)
确定此视图沿轴的首选跨度。 实现此方法是为了返回Component.getPreferredSize沿感兴趣的轴返回的值。- Specified by:
-
getPreferredSpan
在课堂上View
- 参数
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 结果
- 视图希望渲染到> = 0的范围。 通常情况下,视图会被告知渲染到返回的范围内,但不能保证。 父母可以选择调整视图大小或打破视图。
- 异常
-
IllegalArgumentException
- 对于无效的轴 - 另请参见:
-
View.getPreferredSpan(int)
-
getMinimumSpan
public float getMinimumSpan(int axis)
确定此视图沿轴的最小跨度。 实现此方法是为了返回Component.getMinimumSize沿感兴趣的轴返回的值。- 重写:
-
getMinimumSpan
在课堂上View
- 参数
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 结果
- 视图希望渲染到> = 0的范围。 通常情况下,视图会被告知渲染到返回的范围内,但不能保证。 父母可以选择调整视图大小或打破视图。
- 异常
-
IllegalArgumentException
- 对于无效的轴 - 另请参见:
-
View.getPreferredSpan(int)
-
getMaximumSpan
public float getMaximumSpan(int axis)
确定此视图沿轴的最大跨度。 实现此方法是为了返回Component.getMaximumSize沿感兴趣的轴返回的值。- 重写:
-
getMaximumSpan
在课堂上View
- 参数
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 结果
- 视图希望渲染到> = 0的范围。 通常情况下,视图会被告知渲染到返回的范围内,但不能保证。 父母可以选择调整视图大小或打破视图。
- 异常
-
IllegalArgumentException
- 表示无效轴 - 另请参见:
-
View.getPreferredSpan(int)
-
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
public void setParent(View p)
设置子视图的父级。 父母在孩子身上调用它来告诉它父母是谁,让视图访问托管容器之类的东西。 执行超类行为,如果父视图参数为非null且尚未创建组件,则调用createComponent。 然后将嵌入式组件父级设置为getContainer
返回的值。 如果父视图参数为null,则清除此视图,从而从其父视图中删除该组件。更改组件层次结构将触及组件锁定,这是View层次结构中不安全的一件事。 因此,如果在事件线程上,则立即执行此功能,或者如果从另一个线程调用(在异步更新的更改通知中),则在事件队列上排队。
-
modelToView
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
提供从模型的坐标空间到视图的坐标空间的映射。- Specified by:
-
modelToView
类View
- 参数
-
pos
- 要转换的位置> = 0 -
a
- 要分配的区域 -
b
- 如果位置是两个视图的边界,则偏向前一个字符或由偏移量表示的下一个字符;b
将具有以下值之一:-
Position.Bias.Forward
-
Position.Bias.Backward
-
- 结果
- 返回给定位置的边界框
- 异常
-
BadLocationException
- 如果给定位置不代表关联文档中的有效位置 - 另请参见:
-
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
-
viewToModel
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
提供从视图坐标空间到模型的逻辑坐标空间的映射。- Specified by:
-
viewToModel
在类View
- 参数
-
x
- X坐标> = 0 -
y
- Y坐标> = 0 -
a
- 要分配的区域 -
bias
- 返回的偏见 - 结果
- 模型中最能代表视图中给定点的位置
- 另请参见:
-
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
-