- 所有已实现的接口:
SwingConstants
- 已知子类:
AsyncBoxView,ComponentView,CompositeView,GlyphView,IconView,ImageView,PlainView
文本包的一个非常重要的部分是View类。顾名思义,它代表文本模型的一个视图,或者文本模型的一个片段。正是这个类负责文本组件的外观。视图并不是要成为一个必须学习的全新事物,而是更像是一个轻量级组件。
默认情况下,视图非常亮。它包含对父视图的引用,它可以从中获取很多东西而无需保持状态,并且它包含对模型的一部分(Element)的引用。视图不必准确地表示模型中的元素,这只是一个典型且方便的映射。视图可以选择维护几个 Position 对象以维护其在模型中的位置(即表示元素的片段)。这通常是格式化的结果,其中视图被分解成多个部分。与元素的实质关系的便利性使得构建工厂来生成视图变得更加容易,并且在模型更改时更容易跟踪视图片段,并且视图必须更改以反映模型。因此,简单视图直接表示一个元素,而复杂视图则不。
视图具有以下职责:
- 参与布局。
-
该视图有一个
setSize方法,类似于Component中的doLayout和setSize组合。该视图有一个preferenceChanged方法,它类似于Component中的invalidate,除了可以使一个轴无效并且请求更改的子项被识别。视图根据三个值(最小跨度、首选跨度和最大跨度)表达它想要的大小。视图中的布局可以在每个轴上独立完成。对于正常运行的 View 实现,最小跨度将 <= 首选跨度,而首选跨度又将 <= 最大跨度。

布局的最小方法集是:
setSize方法应该准备好被多次调用(即即使大小没有改变也可能被调用)。setSize方法通常被调用以确保视图布局在尝试对其执行需要最新布局的操作之前是完整的。视图的大小应always设置为该视图指定的最小和最大范围内的值。此外,如果视图更改了它想要的布局值,并且希望父级遵守,则视图必须始终调用父级的preferenceChanged方法。在发送preferenceChanged之前,父视图不需要识别更改。如果需要,这允许父视图实现缓存子需求。调用序列如下所示:
确切的调用顺序取决于父视图的布局功能(如果视图有任何子视图)。视图可以在确定给每个子级什么之前收集子级的偏好,或者它可以一次一个地迭代更新子级。
- 渲染模型的一部分。
-
这是在 paint 方法中完成的,它非常类似于组件的 paint 方法。预计视图可能会填充相当大的树。
View具有以下渲染语义:- 视图在绘制时从父级获得分配,因此如果分配的区域与它准备处理的区域不同,它必须准备重新布局。
- 坐标系与宿主
Component相同(即getContainer方法返回的Component)。这意味着子视图与父视图位于同一坐标系中,除非父视图明确更改了坐标系。要安排自己重新绘制视图,可以在托管Component上调用重新绘制。 - 默认是not clip 孩子。仅当视图确实需要裁剪时才允许裁剪它会更有效。
- 给定的
Graphics对象未以任何方式初始化。视图应设置所需的任何设置。 View本质上是透明的。虽然视图可能会呈现到其整个分配中,但通常情况下视图不会。渲染是通过向下遍历View实现的树来执行的。每个View负责渲染其子项。此行为取决于线程安全。虽然视图实现不一定必须考虑线程安全,但其他确实使用并发的视图实现可以依赖于树遍历来保证线程安全。- 视图相对于模型的顺序取决于实现。虽然子视图通常会按照它们在模型中出现的相同顺序排列,但它们在视觉上可能会以完全不同的顺序排列。如果子视图重叠,则视图实现可能具有与之关联的 Z 顺序。
渲染的方法有:
- 在模型和视图坐标系之间转换。
-
由于视图对象是从工厂生产的,因此不一定指望它们处于特定模式中,因此必须能够执行转换以正确定位模型的空间表示。这样做的方法是:
在尝试进行翻译之前,布局必须有效。翻译无效,并且在通过
DocumentEvent从模型广播更改时不得尝试。 - 响应模型的变化。
-
如果整体视图由许多部分表示(如果希望能够更改视图并编写最少数量的新代码,这是最好的情况),那么拥有大量的
DocumentListener是不切实际的。如果每个视图都听模型,那么在任何给定时间实际上只有少数人会对广播的更改感兴趣。由于模型不了解视图,因此无法过滤更改信息的广播。视图层次结构本身负责传播更改信息。在视图层次结构中的任何级别,该视图都充分了解其子视图以最好地进一步分发更改信息。因此,更改从视图层次结构的根开始广播。这样做的方法是:
-
字段摘要
字段修饰符和类型Field描述static final int用于指示视图的权重对于格式化而言是一个糟糕的中断机会。static final intweight表示一个view支持breaking,这代表了一个非常有吸引力的break地方。static final int指示视图的权重支持中断,并且必须在放置在通过中断来格式化其子项的视图中时中断才能正确表示。static final int表明观点的权重支持打破,但可能存在更好的机会。static final int格式化/中断操作的轴。static final int格式化/中断操作的轴。在接口 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 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述void追加单个子视图。breakView(int axis, int offset, float pos, float len) 尝试在给定轴上打破此视图。voidchangedUpdate(DocumentEvent e, Shape a, ViewFactory f) 从文档发出通知,通知该视图负责的位置的属性已更改。createFragment(int p0, int p1) 创建表示元素一部分的视图。protected void将给定的DocumentEvent转发给需要通知模型更改的子视图。protected voidforwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f) 将DocumentEvent转发给给子视图。floatgetAlignment(int axis) 确定此视图沿轴的所需对齐方式。获取渲染时要使用的属性。intgetBreakWeight(int axis, float pos, float len) 确定此视图中休息机会的吸引力。getChildAllocation(int index, Shape a) 获取给定子视图的分配。获取承载视图的容器。获取与视图关联的模型。获取此视图映射到的主题的结构部分。int获取此视图负责的模型部分。获取一个Graphics用于渲染。floatgetMaximumSpan(int axis) 确定此视图沿轴的最大跨度。floatgetMinimumSpan(int axis) 确定此视图沿轴的最小跨度。intgetNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) 提供一种方法来确定下一个可以放置插入符号的可视化表示的模型位置。返回视图的父级。abstract floatgetPreferredSpan(int axis) 确定此视图沿轴的首选跨度。intgetResizeWeight(int axis) 确定视图沿给定轴的可调整大小。int获取此视图负责的模型部分。getToolTipText(float x, float y, Shape allocation) 返回指定位置的工具提示文本。getView(int n) 获取n第子视图。int返回此视图中的视图数。获取提供视图层次结构的ViewFactory实现。intgetViewIndex(float x, float y, Shape allocation) 返回表示视图中给定位置的子视图索引。intgetViewIndex(int pos, Position.Bias b) 返回表示模型中给定位置的子视图索引。void插入单个子视图。voidinsertUpdate(DocumentEvent e, Shape a, ViewFactory f) 通知某些内容已插入文档中此视图负责的位置。boolean返回一个boolean,指示视图是否可见。modelToView(int pos, Shape a) 已弃用。abstract ShapemodelToView(int pos, Shape a, Position.Bias b) 为给定字符提供从文档模型坐标空间到视图坐标空间的映射。modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) 为给定区域提供从文档模型坐标空间到视图坐标空间的映射。abstract void使用给定的渲染表面和该表面上的区域进行渲染。voidpreferenceChanged(View child, boolean width, boolean height) 子视图可以在父视图上调用它以指示首选项已更改并且应该重新考虑布局。voidremove(int i) 删除给定位置的其中一个子级。void删除所有子项。voidremoveUpdate(DocumentEvent e, Shape a, ViewFactory f) 通知此视图负责的位置从文档中删除了某些内容。void替换子视图。void为此视图建立父视图。voidsetSize(float width, float height) 设置视图的大小。protected boolean更新子视图以响应收到模型更改的通知,并且该视图负责的元素有更改记录。protected void更新布局以响应从模型接收到的更改通知。intviewToModel(float x, float y, Shape a) 已弃用。abstract intviewToModel(float x, float y, Shape a, Position.Bias[] biasReturn) 提供从视图坐标空间到模型的逻辑坐标空间的映射。
-
字段详细信息
-
BadBreakWeight
public static final int BadBreakWeight用于指示视图的权重对于格式化而言是一个糟糕的中断机会。此值表示不应尝试将视图分成片段,因为尚未编写视图以支持片段化。- 参见:
-
GoodBreakWeight
public static final int GoodBreakWeight表明观点的权重支持打破,但可能存在更好的机会。- 参见:
-
ExcellentBreakWeight
public static final int ExcellentBreakWeightweight表示一个view支持breaking,这代表了一个非常有吸引力的break地方。- 参见:
-
ForcedBreakWeight
public static final int ForcedBreakWeight指示视图的权重支持中断,并且必须在放置在通过中断来格式化其子项的视图中时中断才能正确表示。- 参见:
-
X_AXIS
public static final int X_AXIS格式化/中断操作的轴。- 参见:
-
Y_AXIS
public static final int Y_AXIS格式化/中断操作的轴。- 参见:
-
-
构造方法详细信息
-
View
创建一个新的View对象。- 参数:
elem-Element代表
-
-
方法详情
-
getParent
返回视图的父级。- 返回:
-
父母,或
null如果不存在
-
isVisible
public boolean isVisible()返回一个boolean,指示视图是否可见。默认情况下,所有视图都是可见的。- 返回:
- 总是返回真
-
getPreferredSpan
public abstract float getPreferredSpan(int axis) 确定此视图沿轴的首选跨度。- 参数:
axis- 可能是View.X_AXIS或View.Y_AXIS- 返回:
- 视图要渲染到的跨度。通常情况下,视图会被告知渲染到返回的范围内,但并不能保证。父级可以选择调整大小或打破视图
-
getMinimumSpan
public float getMinimumSpan(int axis) 确定此视图沿轴的最小跨度。- 参数:
axis- 可能是View.X_AXIS或View.Y_AXIS- 返回:
- 视图可以渲染到的最小跨度
- 参见:
-
getMaximumSpan
public float getMaximumSpan(int axis) 确定此视图沿轴的最大跨度。- 参数:
axis- 可能是View.X_AXIS或View.Y_AXIS- 返回:
- 视图可以渲染到的最大跨度
- 参见:
-
preferenceChanged
子视图可以在父视图上调用它以指示首选项已更改并且应该重新考虑布局。默认情况下,这只会向上传播到下一个父级。根视图将在关联的文本组件上调用revalidate。- 参数:
child- 子视图width- 如果宽度首选项已更改,则为真height- 如果高度偏好已更改,则为真- 参见:
-
getAlignment
public float getAlignment(int axis) 确定此视图沿轴的所需对齐方式。返回所需的对齐方式。这应该是一个 >= 0.0 且 <= 1.0 的值,其中 0 表示对齐原点,1.0 表示对齐远离原点的整个跨度。 0.5 的对齐将是视图的中心。- 参数:
axis- 可能是View.X_AXIS或View.Y_AXIS- 返回:
- 值 0.5
-
paint
使用给定的渲染表面和该表面上的区域进行渲染。视图可能需要进行布局并创建子视图以使其自身能够呈现给定的分配。- 参数:
g- 要使用的渲染表面allocation- 要渲染到的分配区域
-
setParent
为此视图建立父视图。如果父视图正常运行,则保证在任何其他方法之前调用它。这也是最后调用的方法,因为它被调用以指示视图也已从层次结构中删除。当调用此方法将父项设置为 null 时,此方法对其每个子项执行相同操作,传播它们已与视图树断开连接的通知。如果重新实现,则应调用super.setParent()。- 参数:
parent- 新的父级,或者null如果视图从父级移除
-
getViewCount
public int getViewCount()返回此视图中的视图数。由于默认不是复合视图,因此返回 0。- 返回:
- 观看次数 >= 0
- 参见:
-
getView
获取n第子视图。由于默认情况下没有孩子,因此返回null。- 参数:
n- 要获取的视图数,>= 0 && < getViewCount()- 返回:
- 风景
-
removeAll
public void removeAll()删除所有子项。这是对replace的方便调用。- 自从:
- 1.3
-
remove
public void remove(int i) 删除给定位置的其中一个孩子。这是对replace的方便调用。- 参数:
i- 位置- 自从:
- 1.3
-
insert
插入单个子视图。这是对replace的方便调用。- 参数:
offs- 在 >= 0 之前插入的视图的偏移量v- 视图- 自从:
- 1.3
- 参见:
-
append
追加单个子视图。这是对replace的方便调用。- 参数:
v- 视图- 自从:
- 1.3
- 参见:
-
replace
替换子视图。如果没有要删除的视图,这将充当插入。如果没有要添加的视图,这将作为删除。被删除的视图会将父级设置为null,并删除对它们的内部引用,以便它们可以被垃圾收集。这是什么都不做的实现,因为默认情况下视图没有子项。- 参数:
offset- 插入新视图的子视图的起始索引。这应该是一个值 >= 0 且 <= getViewCountlength- 要删除的现有子视图的数量这应该是一个 >= 0 且 <= (getViewCount() - offset) 的值。views- 要添加的子视图。此值可以是null以指示未添加任何子项(对于删除很有用)。- 自从:
- 1.3
-
getViewIndex
返回表示模型中给定位置的子视图索引。默认情况下,视图没有子项,因此实现返回 -1 以指示任何位置都没有有效的子索引。- 参数:
pos- 位置 >= 0b- 偏差- 返回:
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为 -1
- 自从:
- 1.3
-
getChildAllocation
获取给定子视图的分配。这使得能够找出各种视图所在的位置,而无需假设视图如何存储它们的位置。这将返回null,因为默认情况下没有任何子视图。- 参数:
index- 孩子的索引,>= 0 && <getViewCount()a- 分配给这个视图- 返回:
- 分配给子级
-
getNextVisualPositionFrom
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias [] biasRet) throws BadLocationException 提供一种方法来确定下一个可以放置插入符号的可视化表示的模型位置。某些视图可能不可见,它们可能与模型中的顺序不同,或者它们可能不允许访问模型中的某些位置。该方法可以指定一个位置在 >=0 的范围内进行转换。如果值为-1,将自动计算位置。如果值 < -1,将抛出BadLocationException。- 参数:
pos- 要转换的位置b- 偏差a- 渲染的分配区域direction- 从当前位置开始的方向,可以被认为是通常在键盘上找到的箭头键。这将是以下值之一:- SwingConstants.WEST
- SwingConstants.EAST
- SwingConstants.NORTH
- SwingConstants.SOUTH
biasRet- 返回的偏差- 返回:
- 模型中最能代表下一个位置视觉位置的位置
- 抛出:
BadLocationException- 给定位置不是文档中的有效位置IllegalArgumentException- 如果direction不具有上述合法值之一
-
modelToView
为给定字符提供从文档模型坐标空间到视图坐标空间的映射。- 参数:
pos- 所需字符的位置 (>=0)a- 视图区域,包含请求的字符b- 偏移表示的前一个字符或下一个字符的偏差,以防该位置是两个视图的边界;b将具有以下值之一:Position.Bias.ForwardPosition.Bias.Backward
- 返回:
- 指定位置字符在视图坐标空间中的边界框
- 抛出:
BadLocationException- 如果指定位置不代表关联文档中的有效位置IllegalArgumentException- 如果b不是上面列出的合法Position.Bias值之一- 参见:
-
modelToView
public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException 为给定区域提供从文档模型坐标空间到视图坐标空间的映射。指定区域创建为第一个和最后一个字符位置的并集。- 参数:
p0- 第一个字符的位置 (>=0)b0- 第一个字符位置的偏差,朝向偏移量表示的前一个字符或下一个字符,以防该位置是两个视图的边界;b0将具有以下值之一:Position.Bias.ForwardPosition.Bias.Backward
p1- 最后一个字符的位置 (>=0)b1- 第二个字符位置的偏差,定义了上面显示的合法值之一a- 包含请求区域的视图区域- 返回:
- 边界框,它是第一个和最后一个字符位置指定的区域的并集
- 抛出:
BadLocationException- 如果给定位置不代表相关文档中的有效位置IllegalArgumentException- 如果b0或b1不是上面列出的合法Position.Bias值之一- 参见:
-
viewToModel
提供从视图坐标空间到模型的逻辑坐标空间的映射。biasReturn参数将被填充以指示给定的点更接近模型中的下一个字符或模型中的前一个字符。- 参数:
x- X 坐标 >= 0y- Y 坐标 >= 0a- 渲染的分配区域biasReturn- 返回的偏差- 返回:
-
模型中最能代表视图中给定点的位置 >= 0。将填充
biasReturn参数以指示给定点更接近模型中的下一个字符或模型中的前一个字符。
-
insertUpdate
通知某些内容已插入文档中此视图负责的位置。为了减轻子类的负担,此功能被分散到子类可以重新实现的以下调用中:- 如果此视图负责的元素发生任何更改,则调用
updateChildren。如果这个视图有代表子元素的子视图,那么这个方法应该做任何必要的事情来确保子视图正确地代表模型。 forwardUpdate被调用以将 DocumentEvent 转发到适当的子视图。updateLayout被调用是为了让视图有机会修复其布局、重新安排布局或什么都不做。
- 参数:
e- 来自关联文档的更改信息a- 视图的当前分配f- 如果视图有子视图,用于重建的工厂- 参见:
- 如果此视图负责的元素发生任何更改,则调用
-
removeUpdate
通知此视图负责的位置从文档中删除了某些内容。为了减轻子类的负担,此功能被分散到子类可以重新实现的以下调用中:- 如果此视图负责的元素发生任何更改,则调用
updateChildren。如果这个视图有代表子元素的子视图,那么这个方法应该做任何必要的事情来确保子视图正确地代表模型。 forwardUpdate被调用以将 DocumentEvent 转发到适当的子视图。updateLayout被调用是为了让视图有机会修复其布局、重新安排布局或什么都不做。
- 参数:
e- 来自关联文档的更改信息a- 视图的当前分配f- 如果视图有子视图,用于重建的工厂- 参见:
- 如果此视图负责的元素发生任何更改,则调用
-
changedUpdate
从文档发出通知,通知该视图负责的位置的属性已更改。为了减轻子类的负担,此功能被分散到子类可以重新实现的以下调用中:- 如果此视图负责的元素发生任何更改,则调用
updateChildren。如果这个视图有代表子元素的子视图,那么这个方法应该做任何必要的事情来确保子视图正确地代表模型。 forwardUpdate被调用以将 DocumentEvent 转发到适当的子视图。updateLayout被调用是为了让视图有机会修复其布局、重新安排布局或什么都不做。
- 参数:
e- 来自关联文档的更改信息a- 视图的当前分配f- 如果视图有子视图,用于重建的工厂- 参见:
- 如果此视图负责的元素发生任何更改,则调用
-
getDocument
获取与视图关联的模型。- 返回:
-
视图模型,
null如果没有 - 参见:
-
getStartOffset
public int getStartOffset()获取此视图负责的模型部分。- 返回:
- 模型的起始偏移 >= 0
- 参见:
-
getEndOffset
public int getEndOffset()获取此视图负责的模型部分。- 返回:
- 模型的结束偏移 >= 0
- 参见:
-
getElement
获取此视图映射到的主题的结构部分。视图可能不负责元素的整个部分。- 返回:
- 主题
- 参见:
-
getGraphics
获取一个Graphics用于渲染。这可用于确定字体特征,打印视图与组件视图不同。- 返回:
-
用于渲染的
Graphics对象 - 自从:
- 1.3
-
getAttributes
获取渲染时要使用的属性。默认情况下,这只是返回关联元素的属性。应该使用此方法而不是直接使用元素来获取对属性的访问权限,以允许混入特定于视图的属性或允许视图通过子类对特定于视图的属性进行转换。每个视图都应该记录它为渲染或布局目的识别的属性,并且应该始终通过此方法返回的AttributeSet访问它们。- 返回:
- 渲染时使用的属性
-
breakView
尝试在给定轴上打破此视图。这是由试图对其子项进行格式化的视图调用的。例如,一个段落的视图通常会尝试将其子元素放入行中,而代表文本块的视图有时会被分解成更小的部分。这是为了返回视图本身,它代表不可破坏的默认行为。如果视图确实支持中断,则返回的视图的起始偏移量应为给定的偏移量,结束偏移量应小于或等于被中断视图的结束偏移量。
- 参数:
axis- 可能是View.X_AXIS或View.Y_AXISoffset- 文档模型中损坏的片段将占据的位置 >= 0。这将是返回的片段的起始偏移量pos- 破碎视图沿轴的位置 >= 0。这可能对选项卡计算等有用len- 指定沿轴的距离,其中需要潜在中断 >= 0- 返回:
- 表示给定跨度的视图片段(如果视图可以断开)。如果视图不支持中断行为,则返回视图本身。
- 参见:
-
createFragment
创建表示元素一部分的视图。这在对视图片段进行测量的格式化操作期间可能很有用。如果视图不支持分段(默认),它应该返回自己。- 参数:
p0- 起始偏移量 >= 0。这应该是一个大于或等于元素起始偏移量且小于元素结束偏移量的值。p1- 结束偏移量 > p0。这应该是一个小于或等于元素结束偏移量并大于元素开始偏移量的值。- 返回:
- 视图片段,如果视图不支持分成片段,则它本身
- 参见:
-
getBreakWeight
public int getBreakWeight(int axis, float pos, float len) 确定此视图中休息机会的吸引力。这可用于确定在格式化过程中哪个视图最有吸引力调用breakView。例如,表示其中包含空格的文本的视图可能比没有空格的视图更具吸引力。权重越高,突破越有吸引力。不应将等于或小于BadBreakWeight的值视为中断。大于或等于ForcedBreakWeight的值应该被打破。这是为了提供返回
BadBreakWeight的默认行为,除非长度大于视图的长度,在这种情况下整个视图代表片段。除非已经编写了支持破坏行为的视图,否则尝试破坏视图是没有吸引力的。支持中断的视图示例是LabelView。使用断裂重量的视图示例是ParagraphView。- 参数:
axis- 可能是View.X_AXIS或View.Y_AXISpos- 断开视图开始的潜在位置 >= 0。这可能对计算制表符位置有用len- 指定从 pos 开始的相对长度,其中需要潜在中断 >= 0- 返回:
- 权重,应该是 ForcedBreakWeight 和 BadBreakWeight 之间的值
- 参见:
-
getResizeWeight
public int getResizeWeight(int axis) 确定视图沿给定轴的可调整大小。 0 或更小的值不可调整大小。- 参数:
axis- 可能是View.X_AXIS或View.Y_AXIS- 返回:
- 重量
-
setSize
public void setSize(float width, float height) 设置视图的大小。如果它有任何布局职责,这应该会导致视图沿给定轴布局。- 参数:
width- 宽度 >= 0height- 高度 >= 0
-
getContainer
获取承载视图的容器。这对于安排重绘、查找主机组件字体等非常有用。默认实现是将查询转发到父视图。- 返回:
-
容器,
null如果没有
-
getViewFactory
获取提供视图层次结构的ViewFactory实现。通常,当视图最有可能需要工厂时,会将其作为模型更新的参数,但此方法可在其他时间提供它。- 返回:
-
工厂,
null如果没有
-
getToolTipText
返回指定位置的工具提示文本。默认实现返回由传入位置标识的子视图的值。- 参数:
x- x 坐标y- y 坐标allocation- 视图的当前分配。- 返回:
- 指定位置的工具提示文本
- 自从:
- 1.4
- 参见:
-
getViewIndex
返回表示视图中给定位置的子视图索引。这将迭代所有返回第一个边界包含x、y的子项。- 参数:
x- x 坐标y- y 坐标allocation- 视图的当前分配。- 返回:
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为 -1
- 自从:
- 1.4
-
updateChildren
更新子视图以响应收到模型更改的通知,并且该视图负责的元素有更改记录。这是为了假设子视图直接负责此视图表示的元素的子元素。ViewFactory用于为在ElementChange中添加的每个指定元素创建子视图,从给定ElementChange中指定的索引开始。代表被移除的指定元素的子视图数被移除。- 参数:
ec- 此视图负责的元素的更改信息。如果调用此方法,则不应为nulle- 来自关联文档的更改信息f- 用于构建子视图的工厂- 返回:
- 子视图是否表示该视图负责的元素的子元素。一些视图创建代表他们负责的元素的一部分的子级,并且应该返回 false。此信息用于确定是否应转发所添加元素范围内的视图
- 自从:
- 1.3
- 参见:
-
forwardUpdate
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f) 将给定的DocumentEvent转发给需要通知模型更改的子视图。如果此视图负责的元素发生更改,则在转发时应考虑到这一点(即不应通知新的子视图)。- 参数:
ec- 对此视图负责的元素的更改(如果没有更改,则可能是null)。e- 来自关联文档的更改信息a- 视图的当前分配f- 如果视图有子视图,用于重建的工厂- 自从:
- 1.3
- 参见:
-
forwardUpdateToView
将DocumentEvent转发给给子视图。这只是根据事件的类型通过调用insertUpdate、removeUpdate或changedUpdate向视图发送消息。这是由forwardUpdate调用的,用于将事件转发给需要它的孩子。- 参数:
v- 将事件转发到的子视图e- 来自关联文档的更改信息a- 视图的当前分配f- 如果视图有子视图,用于重建的工厂- 自从:
- 1.3
- 参见:
-
updateLayout
更新布局以响应从模型接收到的更改通知。如果ElementChange记录不是null,则执行此操作以调用preferenceChanged重新安排新布局。- 参数:
ec- 对此视图负责的元素的更改(如果没有更改,则可能是null)e- 来自关联文档的更改信息a- 视图的当前分配- 自从:
- 1.3
- 参见:
-
modelToView
已弃用。提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。这是为了将偏差默认为Position.Bias.Forward而实现的,这是之前暗示的。- 参数:
pos- 要转换的位置 >= 0a- 渲染的分配区域- 返回:
- 返回给定位置的边界框
- 抛出:
BadLocationException- 如果给定位置不代表相关文档中的有效位置- 参见:
-
viewToModel
已弃用。提供从视图坐标空间到模型的逻辑坐标空间的映射。- 参数:
x- X 坐标 >= 0y- Y 坐标 >= 0a- 渲染的分配区域- 返回:
- 模型中最能代表视图中给定点的位置 >= 0
- 参见:
-