- java.lang.Object
-
- javax.swing.text.View
-
- All Implemented Interfaces:
-
SwingConstants
- 已知直接子类:
-
AsyncBoxView
,ComponentView
,CompositeView
,GlyphView
,IconView
,ImageView
,PlainView
public abstract class View extends Object implements SwingConstants
文本包中非常重要的一部分是
View
类。 顾名思义,它代表文本模型的视图,或文本模型的一部分。 正是这个类负责文本组件的外观。 这个观点并不是一个必须学习的全新的东西,而是像一个轻量级的组件。默认情况下,视图很轻。 它包含对父视图的引用,它可以从中获取许多东西而不保持状态,并且它包含对模型部分的引用(
Element
)。 视图不必完全代表模型中的元素,这只是一个典型的,因此方便的映射。 视图可以替代地保持几个Position对象以保持其在模型中的位置(即,表示元素的片段)。 这通常是格式化视图被分解成碎片的结果。 与元素的实质关系的便利使得更容易构建工厂来生成视图,并且随着模型被更改而使视图的跟踪更容易,并且必须改变视图以反映模型。 因此,简单的视图代表一个元素直接而复杂的视图。观点有以下职责:
- 参与布局。
-
该视图具有
setSize
方法,如doLayout
和setSize
在Component
组合。 该视图具有preferenceChanged
方法,其类似于invalidate
中的Component
除了可以使一个轴无效,并且识别出请求更改的子Component
。视图表示要根据三个值,最小值,首选值和最大跨度计算的大小。 视图中的布局可以在每个轴上独立完成。 对于正常运行的View实现,最小跨度将是<=优选跨度,反过来将是<=最大跨度。
最小的布局方法是:
setSize
方法应准备好多次调用(即使大小没有变化也可以调用)。 通常调用setSize
方法以确保View布局完成,然后再尝试执行需要最新布局的操作。 视图的大小应始终设置为该视图指定的最小和最大跨度内的值。 另外,如果这个视图已经改变了它想要的布局的值,那么这个视图必须始终调用父代的方法,并且期望父节点preferenceChanged
。 在发送preferenceChanged
之前,父视图不需要识别更改。 这允许父视图实现缓存子需求(如果需要)。 调用顺序如下所示:精确的调用顺序取决于父视图的布局功能(如果视图有任何子节点)。 该视图可以在确定给予每个孩子的情况之前收集孩子的偏好,或者可以一次迭代地更新孩子。
- 渲染模型的一部分。
-
这是在paint方法中完成的,这很像一个组件绘制方法。 预计意图可能会填补相当大的树。 A
View
具有以下用于呈现的语义:- 该视图在绘制时间从父母获取其分配,因此如果分配的区域与准备处理的区域不同,则必须准备重新布局。
- 坐标系是相同的托管
Component
(即Component
由返回getContainer
方法)。 这意味着一个子视图与父视图生活在同一个坐标系中,除非父对象明确地改变了坐标系。 要安排自己重画,视图可以在主持人Component
上调用重绘。 - 默认是不剪辑孩子。 只有当它真的需要剪裁时才允许视图剪辑更有效。
- 给出的
Graphics
对象没有以任何方式初始化。 视图应设置所需的任何设置。 - A
View
本质上是透明的。 虽然视图可能会导致其整个分配,通常视图不会。 通过遍历View
实现的树来执行View
。 每个View
负责渲染它的孩子。 这种行为取决于线程安全性。 虽然视图实现不一定必须用线程安全性来实现,但是使用并发性的其他视图实现可以取决于树遍历以保证线程安全性。 - 相对于模型的观点顺序取决于实现。 虽然子视图通常以与模型中相同的顺序排列,但它们可以以完全不同的顺序在视觉上排列。 如果孩子重叠,则查看实现可能具有与它们相关联的Z顺序。
渲染的方法是:
- 在模型和视图坐标系之间进行翻译。
-
因为视图对象是从工厂生成的,因此不一定被计入特定模式,必须能够执行转换以正确定位模型的空间表示。 这样做的方法是:
在进行翻译之前,布局必须是有效的。 翻译无效,在通过
DocumentEvent
从模型广播更改时,不得尝试DocumentEvent
。 - 响应模型的变化。
-
如果整体视图由许多部分表示(如果希望能够更改视图并写入最少的新代码,这是最好的情况),拥有大量的
DocumentListener
s将是不切实际的。 如果每个视图都听取了模型,只有少数人实际上对任何给定时间播出的变化感兴趣。 由于该模型不具有意见知识,因此无法过滤广播变更信息。 视图层次本身负责传播变更信息。 在视图层次结构中的任何级别,该视图足够了解其子进程最好分发更改信息。 因此,从视图层次结构的根开始广播更改。 这样做的方法是:
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
BadBreakWeight
表示视图的重量是格式化的一个坏的机会。static int
ExcellentBreakWeight
指示视图的重量支持打破,这代表了一个非常有吸引力的地方打破。static int
ForcedBreakWeight
指示视图的重量支持断开,并且必须打破,以便在放置在通过破坏它们来格式化其子项的视图中时正确表示。static int
GoodBreakWeight
指示视图的重量支持突破,但可能存在更好的机会。static int
X_AXIS
轴用于格式化/中断操作。static int
Y_AXIS
轴用于格式化/中断操作。-
Fields inherited from 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
-
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 void
append(View v)
附加单个子视图。View
breakView(int axis, int offset, float pos, float len)
试图在给定的轴上打破这个视图。void
changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
在该视图负责的位置向文档发出属性更改的通知。View
createFragment(int p0, int p1)
创建一个表示元素的一部分的视图。protected void
forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
将给定的DocumentEvent
转发给需要通知模型更改的子视图。protected void
forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)
向DocumentEvent
转发给子视图。float
getAlignment(int axis)
确定沿着轴的该视图的所需对准。AttributeSet
getAttributes()
获取渲染时要使用的属性。int
getBreakWeight(int axis, float pos, float len)
确定这种观点的休息时机有多吸引人。Shape
getChildAllocation(int index, Shape a)
获取给定子视图的分配。Container
getContainer()
获取托管视图的容器。Document
getDocument()
获取与视图关联的模型。Element
getElement()
获取该视图映射到的对象的结构部分。int
getEndOffset()
获取该视图负责的模型部分。Graphics
getGraphics()
获取Graphics
进行渲染。float
getMaximumSpan(int axis)
确定沿着轴的该视图的最大跨度。float
getMinimumSpan(int axis)
确定此视图沿轴的最小跨度。int
getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
提供一种方法来确定下一个可视表示的模型位置,在该位置可以放置插入符。View
getParent()
返回视图的父级。abstract float
getPreferredSpan(int axis)
确定沿着轴的此视图的首选跨度。int
getResizeWeight(int axis)
确定沿着给定轴的视图的可复位性。int
getStartOffset()
获取该视图负责的模型部分。String
getToolTipText(float x, float y, Shape allocation)
返回指定位置的工具提示文本。View
getView(int n)
获取第 n个子视图。int
getViewCount()
返回此视图中的视图数。ViewFactory
getViewFactory()
获取正在提供视图层次结构的ViewFactory
实现。int
getViewIndex(float x, float y, Shape allocation)
返回表示视图中给定位置的子视图索引。int
getViewIndex(int pos, Position.Bias b)
返回表示模型中给定位置的子视图索引。void
insert(int offs, View v)
插入单个子视图。void
insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
在该视图负责的位置发出通知。boolean
isVisible()
返回一个布尔值,指示视图是否可见。Shape
modelToView(int pos, Shape a)
已过时。abstract Shape
modelToView(int pos, Shape a, Position.Bias b)
提供给定字符从文档模型坐标空间到视图坐标空间的映射。Shape
modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
为给定区域提供从文档模型坐标空间到视图坐标空间的映射。abstract void
paint(Graphics g, Shape allocation)
渲染使用给定的渲染表面和该表面上的区域。void
preferenceChanged(View child, boolean width, boolean height)
子视图可以在父项上调用,以表明偏好已更改,应重新考虑布局。void
remove(int i)
移除给定位置上的一个孩子。void
removeAll()
删除所有的孩子。void
removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
在该视图负责的位置发出文档中已删除某些内容的通知。void
replace(int offset, int length, View[] views)
代替子视图。void
setParent(View parent)
建立此视图的父视图。void
setSize(float width, float height)
设置视图的大小。protected boolean
updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
更新子视图以响应接收到模型更改的通知,并且此视图负责的元素有更改记录。protected void
updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
响应于从模型接收到更改的通知更新布局。int
viewToModel(float x, float y, Shape a)
已过时。abstract int
viewToModel(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 ExcellentBreakWeight
指示视图的重量支持打破,这代表了一个非常有吸引力的地方打破。
-
ForcedBreakWeight
public static final int ForcedBreakWeight
指示视图的重量支持断开,并且必须打破,以便在放置在通过破坏它们来格式化其子项的视图中时正确表示。
-
X_AXIS
public static final int X_AXIS
轴用于格式化/中断操作。- 另请参见:
- Constant Field Values
-
Y_AXIS
public static final int Y_AXIS
轴用于格式化/中断操作。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
View
public View(Element elem)
创建一个新的View
对象。- 参数
-
elem
-Element
代表
-
-
方法详细信息
-
getParent
public View getParent()
返回视图的父级。- 结果
-
如果没有,
null
-
isVisible
public boolean isVisible()
返回一个布尔值,指示视图是否可见。 默认情况下,所有视图都可见。- 结果
- 总是返回true
-
getPreferredSpan
public abstract float getPreferredSpan(int axis)
确定沿着轴的此视图的首选跨度。- 参数
-
axis
- 可以是View.X_AXIS
或View.Y_AXIS
- 结果
- 视图想要渲染的跨度。 通常,视图被呈现到返回的跨度,尽管不能保证。 父母可以选择调整大小或打破视图
- 另请参见:
-
getPreferredSpan(int)
-
getMinimumSpan
public float getMinimumSpan(int axis)
确定此视图沿轴的最小跨度。- 参数
-
axis
- 可以是View.X_AXIS
或View.Y_AXIS
- 结果
- 视图可以呈现的最小跨度
- 另请参见:
-
getPreferredSpan(int)
-
getMaximumSpan
public float getMaximumSpan(int axis)
确定沿着轴的该视图的最大跨度。- 参数
-
axis
- 可以是View.X_AXIS
或View.Y_AXIS
- 结果
- 视图可以呈现的最大跨度
- 另请参见:
-
getPreferredSpan(int)
-
preferenceChanged
public void preferenceChanged(View child, boolean width, boolean height)
子视图可以在父项上调用,以表明偏好已更改,应重新考虑布局。 默认情况下,它向上传播到下一个父级。 根视图将在关联的文本组件上调用revalidate
。- 参数
-
child
- 子视图 -
width
- 如果宽度首选项已更改,width
true -
height
- 如果高度偏好已更改,height
true - 另请参见:
-
JComponent.revalidate()
-
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
public abstract void paint(Graphics g, Shape allocation)
渲染使用给定的渲染表面和该表面上的区域。 该视图可能需要进行布局并创建子视图,以使其自身能够呈现给定的分配。- 参数
-
g
- 要使用的渲染表面 -
allocation
- 要分配的区域
-
setParent
public void setParent(View parent)
建立此视图的父视图。 如果父视图正常工作,这可以保证在任何其他方法之前被调用。 这也是调用的最后一个方法,因为它被调用以指示视图也已从层次结构中移除。 当调用此方法将父设置为null时,此方法对其每个子项执行相同操作,将从断开连接的通知传播到视图树。 如果这被重新实现,应该调用super.setParent()
。- 参数
-
parent
- 新的父母,或null
如果视图被从父母移除
-
getViewCount
public int getViewCount()
返回此视图中的视图数。 由于默认值不是复合视图,因此返回0。- 结果
- 视图数> = 0
- 另请参见:
-
getViewCount()
-
getView
public View getView(int n)
获取第n个子视图。 由于默认情况下没有孩子,所以返回null
。- 参数
-
n
- 要获取的视图数,> = 0 && <getViewCount() - 结果
- 风景
-
removeAll
public void removeAll()
删除所有的孩子。 这是一个方便的电话replace
。- 从以下版本开始:
- 1.3
-
remove
public void remove(int i)
移除给定位置上的一个孩子。 这是一个方便的电话replace
。- 参数
-
i
- 的位置 - 从以下版本开始:
- 1.3
-
insert
public void insert(int offs, View v)
插入单个子视图。 这是一个方便的电话到replace
。- 参数
-
offs
- 在> = 0之前插入视图的偏移量 -
v
- 视图 - 从以下版本开始:
- 1.3
- 另请参见:
-
replace(int, int, javax.swing.text.View[])
-
append
public void append(View v)
附加单个子视图。 这是一个方便的电话replace
。- 参数
-
v
- 视图 - 从以下版本开始:
- 1.3
- 另请参见:
-
replace(int, int, javax.swing.text.View[])
-
replace
public void replace(int offset, int length, View[] views)
代替子视图。 如果没有任何意见删除这个行为作为插入。 如果没有任何视图添加此行为作为删除。 正在删除的视图将使父级设置为null
,并将它们的内部引用移除,以便它们可以被垃圾回收。 这是实现为不做任何事情,因为默认情况下,视图没有孩子。- 参数
-
offset
- 将子视图的起始索引插入新视图。 这应该是一个值> = 0和<= getViewCount -
length
- 要删除的现有子视图的数量这应该是一个值> = 0和<=(getViewCount() - offset)。 -
views
- 要添加的子视图。 该值可以是null
,表示没有添加子项(可用于删除)。 - 从以下版本开始:
- 1.3
-
getViewIndex
public int getViewIndex(int pos, Position.Bias b)
返回表示模型中给定位置的子视图索引。 默认情况下,一个视图没有子节点,因此执行此操作返回-1以指示任何位置没有有效的子索引。- 参数
-
pos
- 位置> = 0 -
b
- 结果
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为-1
- 从以下版本开始:
- 1.3
-
getChildAllocation
public Shape getChildAllocation(int index, Shape a)
获取给定子视图的分配。 这样可以在不考虑视图如何存储其位置的情况下,找出各种视图所在的位置。 这将返回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
public abstract Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
提供给定字符从文档模型坐标空间到视图坐标空间的映射。- 参数
-
pos
- 所需字符的位置(> = 0) -
a
- 视图的区域,其中包含请求的字符 -
b
- 在位置是两个视图的边界的情况下偏向前一个字符或由偏移表示的下一个字符;b
将具有以下值之一:-
Position.Bias.Forward
-
Position.Bias.Backward
-
- 结果
- 在视图坐标空间中,在指定位置处的字符的边界框
- 异常
-
BadLocationException
- 如果指定的位置不表示关联文档中的有效位置 -
IllegalArgumentException
- 如果b
不是上述合法的Position.Bias
值之一 - 另请参见:
-
viewToModel(float, float, java.awt.Shape, javax.swing.text.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.Forward
-
Position.Bias.Backward
-
-
p1
- 最后一个字符的位置(> = 0) -
b1
- 第二个字符位置的偏差,定义了上述合法值之一 -
a
- 包含请求地区的视图区域 - 结果
- 边界框是由第一个和最后一个字符位置指定的区域的并集
- 异常
-
BadLocationException
- 如果给定的位置不表示相关文档中的有效位置 -
IllegalArgumentException
- 如果b0
或b1
不是上述合法的Position.Bias
值之一 - 另请参见:
-
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
viewToModel
public abstract int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
提供从视图坐标空间到模型的逻辑坐标空间的映射。biasReturn
参数将被填入,表示给定的点更接近模型中的下一个字符或模型中的上一个字符。- 参数
-
x
- X坐标> = 0 -
y
- Y坐标> = 0 -
a
- 要呈现的分配区域 -
biasReturn
- 返回的偏差 - 结果
-
模型中位置最好地表示视图> = 0中的给定点。将填充
biasReturn
参数,以指示给定的点更接近模型中的下一个字符或模型中的上一个字符。
-
insertUpdate
public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
在该视图负责的位置发出通知。 为了减少子类的负担,此功能扩展到子类可以重新实现的以下调用中:- 如果对此视图负责的元素有任何更改,则调用
updateChildren
。 如果此视图具有表示子元素的子视图,则此方法应执行必要的任何操作,以确保子视图正确表示模型。 - 调用
forwardUpdate
将DocumentEvent转发到适当的子视图。 -
updateLayout
被调用来给视图一个机会修复它的布局,重新安排布局,或什么都不做。
- 参数
-
e
- 相关文件的更改信息 -
a
- 视图的当前分配 -
f
- 工厂用来重建如果视图有孩子 - 另请参见:
-
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
- 如果对此视图负责的元素有任何更改,则调用
-
removeUpdate
public void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
在该视图负责的位置发出文档中已删除某些内容的通知。 为了减少子类的负担,此功能扩展到子类可以重新实现的以下调用中:- 如果对此视图负责的元素有任何更改,则调用
updateChildren
。 如果此视图具有表示子元素的子视图,则此方法应执行必要的任何操作,以确保子视图正确表示模型。 - 调用
forwardUpdate
将DocumentEvent转发到适当的子视图。 -
updateLayout
被调用来给视图一个机会修复它的布局,重新安排布局,或什么都不做。
- 参数
-
e
- 相关文件的更改信息 -
a
- 视图的当前分配 -
f
- 工厂用来重建如果视图有孩子 - 另请参见:
-
removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
- 如果对此视图负责的元素有任何更改,则调用
-
changedUpdate
public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
在该视图负责的位置向文档发出属性更改的通知。 为了减少子类的负担,此功能扩展到子类可以重新实现的以下调用中:- 如果对该视图负责的元素有任何更改,则调用
updateChildren
。 如果此视图具有表示子元素的子视图,则此方法应执行必要的任何操作,以确保子视图正确表示模型。 - 调用
forwardUpdate
将DocumentEvent转发到适当的子视图。 -
updateLayout
被调用来给视图一个机会修复它的布局,重新安排布局,或什么都不做。
- 参数
-
e
- 相关文件的变更信息 -
a
- 视图的当前分配 -
f
- 工厂用来重建如果视图有孩子 - 另请参见:
-
changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
- 如果对该视图负责的元素有任何更改,则调用
-
getDocument
public Document getDocument()
获取与视图关联的模型。- 结果
-
视图模型,
null
如果没有 - 另请参见:
-
getDocument()
-
getStartOffset
public int getStartOffset()
获取该视图负责的模型部分。- 结果
- 起始偏移到模型> = 0
- 另请参见:
-
getStartOffset()
-
getEndOffset
public int getEndOffset()
获取该视图负责的模型部分。- 结果
- 结束偏移到模型中> = 0
- 另请参见:
-
getEndOffset()
-
getElement
public Element getElement()
获取该视图映射到的对象的结构部分。 该视图可能不对元素的整个部分负责。- 结果
- 主题
- 另请参见:
-
getElement()
-
getGraphics
public Graphics getGraphics()
获取Graphics
进行渲染。 这可以用于确定字体特征,并且对于打印视图而言不同于组件视图。- 结果
-
一个用于呈现的
Graphics
对象 - 从以下版本开始:
- 1.3
-
getAttributes
public AttributeSet getAttributes()
获取渲染时要使用的属性。 默认情况下,这只是返回相关元素的属性。 应该使用此方法而不是直接使用元素来获取对属性的访问,以允许将视图特定的属性混合在一起,或允许视图对子类进行视图特定的属性转换。 每个视图都应记录它为渲染或布局的目的识别哪些属性,并且应该始终通过此方法返回的AttributeSet
访问它们。- 结果
- 渲染时要使用的属性
-
breakView
public View breakView(int axis, int offset, float pos, float len)
试图在给定的轴上打破这个视图。 这是通过尝试对其孩子进行格式化的视图来调用的。 例如,段落的视图通常会尝试将其子代放置成行,并且表示文本块的视图有时可以分解成较小的部分。这是为了返回视图本身而实现的,它表示不可破坏的默认行为。 如果视图确实支持断开,则返回的视图的起始偏移应为给定的偏移量,结束偏移应小于或等于被破坏的视图的最终偏移。
- 参数
-
axis
- 可以是View.X_AXIS
或View.Y_AXIS
-
offset
- 断开的片段占据> = 0的文档模型中的位置。这将是返回的片段的起始偏移量 -
pos
- 断开的视图将占据的轴的位置> = 0。这可能对于诸如选项卡计算 -
len
- 指定沿着轴的距离,其中需要潜在断点> = 0 - 结果
- 表示给定跨度的视图的片段,如果视图可以被破坏。 如果视图不支持破坏行为,则返回视图本身。
- 另请参见:
-
ParagraphView
-
createFragment
public View createFragment(int p0, int p1)
创建一个表示元素的一部分的视图。 这在格式化操作中可以用于测量视图的片段。 如果视图不支持分片(默认),它将返回自身。- 参数
-
p0
- 起始偏移量> = 0。这应该是一个大于或等于元素起始偏移值并小于元素结束偏移量的值。 -
p1
- 结束偏移量> p0。 这应该是小于或等于元素结束偏移量的值,并且大于元素起始偏移量。 - 结果
- 视图片段或本身,如果视图不支持打破碎片
- 另请参见:
-
LabelView
-
getBreakWeight
public int getBreakWeight(int axis, float pos, float len)
确定这种观点的休息时机有多吸引人。 这可以用于确定在格式化过程中调用breakView
最有吸引力的视图。 例如,表示具有空格的文本的视图可能比没有空格的视图更有吸引力。 重量越高,休息时间越有吸引力。 等于或低于BadBreakWeight
不应被视为休息。 应破坏大于或等于ForcedBreakWeight
值。这是为了提供返回
BadBreakWeight
的默认行为,除非长度大于视图的长度,在这种情况下,整个视图表示片段。 除非写出支持破坏行为的观点,否则尝试违反观点是没有吸引力的。 支持破解的视图的示例是LabelView
。 使用重量的视图的示例是ParagraphView
。- 参数
-
axis
- 可以是View.X_AXIS
或View.Y_AXIS
-
pos
- 断开视图开始的潜在位置> = 0。这可能有助于计算标签位置 -
len
-指定从其中可能需要拆分> = 0 POS相对长度 - 结果
- 重量应该是ForcedBreakWeight和BadBreakWeight之间的值
- 另请参见:
-
LabelView
,ParagraphView
,BadBreakWeight
,GoodBreakWeight
,ExcellentBreakWeight
,ForcedBreakWeight
-
getResizeWeight
public int getResizeWeight(int axis)
确定沿着给定轴的视图的可复位性。 0或更小的值不能调整大小。- 参数
-
axis
- 可以是View.X_AXIS
或View.Y_AXIS
- 结果
- 重量
-
setSize
public void setSize(float width, float height)
设置视图的大小。 这应该导致沿着给定轴的视图的布局,如果它有任何布局义务。- 参数
-
width
- width> = 0 -
height
- height> = 0
-
getContainer
public Container getContainer()
获取托管视图的容器。 这对于调度重绘,查找主机组件字体等的事情很有用。默认实现是将查询转发到父视图。- 结果
-
容器,
null
如果没有
-
getViewFactory
public ViewFactory getViewFactory()
获取正在提供视图层次结构的ViewFactory
实现。 通常,这些观点被认为是在模型最有可能需要工厂时进行更新的参数,但此方法用于在其他时间提供。- 结果
-
工厂,
null
如果没有
-
getToolTipText
public String getToolTipText(float x, float y, Shape allocation)
返回指定位置的工具提示文本。 默认实现返回由传入的位置标识的子视图的值。- 参数
-
x
- x坐标 -
y
- y坐标 -
allocation
- 视图的当前分配。 - 结果
- 在指定位置的工具提示文本
- 从以下版本开始:
- 1.4
- 另请参见:
-
JTextComponent.getToolTipText(java.awt.event.MouseEvent)
-
getViewIndex
public int getViewIndex(float x, float y, Shape allocation)
返回表示视图中给定位置的子视图索引。 这遍历所有的孩子返回第一个具有包含界限x
,y
。- 参数
-
x
- x坐标 -
y
- y坐标 -
allocation
- 视图的当前分配。 - 结果
- 表示给定位置的视图的索引,如果没有视图表示该位置,则为-1
- 从以下版本开始:
- 1.4
-
updateChildren
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
更新子视图以响应接收到模型更改的通知,并且此视图负责的元素有更改记录。 这被实现为假定子视图直接对该视图所代表的元素的子元素负责。ViewFactory
用于为在ElementChange
添加的每个元素创建子视图,从给定的ElementChange
指定的索引开始。 表示删除的元素指定的子视图的数量被删除。- 参数
-
ec
- 此视图负责的元素的更改信息。 如果这个方法被调用,这不应该是null
-
e
- 相关文件的更改信息 -
f
- 工厂用来构建子视图 - 结果
- 子视图是否代表该视图负责的元素的子元素。 一些视图创建代表他们负责的元素的一部分的子代,并且应该返回false。 此信息用于确定添加元素范围内的视图是否应转发到
- 从以下版本开始:
- 1.3
- 另请参见:
-
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
forwardUpdate
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
向给定的DocumentEvent
转发需要通知模型更改的子视图。 如果对此视图负责的元素进行了更改,那么在转发时应该考虑(即新的子视图不应该被通知)。- 参数
-
ec
- 对此视图负责的元素的更改(如果没有更改,则可能为null
)。 -
e
- 相关文件的变更信息 -
a
- 视图的当前分配 -
f
- 如果视图有孩子,工厂要重建 - 从以下版本开始:
- 1.3
- 另请参见:
-
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
forwardUpdateToView
protected void forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)
向DocumentEvent
发送DocumentEvent
子视图。 这可以根据事件的类型简单地向视图insertUpdate
removeUpdate
或changedUpdate
。 这是由forwardUpdate
调用,将事件转发给需要它的孩子。- 参数
-
v
- 将事件转发到的子视图 -
e
- 相关文件的更改信息 -
a
- 视图的当前分配 -
f
- 如果视图有孩子,工厂要重建 - 从以下版本开始:
- 1.3
- 另请参见:
-
forwardUpdate(javax.swing.event.DocumentEvent.ElementChange, javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
updateLayout
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
响应于从模型接收到更改的通知更新布局。 如果ElementChange
记录不是null
则这可以调用preferenceChanged
重新安排新的布局。- 参数
-
ec
- 对此视图负责的元素的更改(如果没有更改,可能是null
) -
e
- 相关文档中的更改信息 -
a
- 视图的当前分配 - 从以下版本开始:
- 1.3
- 另请参见:
-
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
modelToView
@Deprecated public Shape modelToView(int pos, Shape a) throws BadLocationException
已过时。提供从文档模型坐标空间映射到映射到它的视图的坐标空间的映射。 这是为了将偏差默认为先前隐含的Position.Bias.Forward
来实现的。- 参数
-
pos
- 转换> = 0的位置 -
a
- 要呈现的分配区域 - 结果
- 返回给定位置的边界框
- 异常
-
BadLocationException
- 如果给定的位置不表示相关文档中的有效位置 - 另请参见:
-
modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
-
viewToModel
@Deprecated public int viewToModel(float x, float y, Shape a)
已过时。提供从视图坐标空间到模型的逻辑坐标空间的映射。- 参数
-
x
- X坐标> = 0 -
y
- Y坐标> = 0 -
a
- 要呈现的分配区域 - 结果
- 模型中的位置最好地表示视图> = 0中的给定点
- 另请参见:
-
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
-