java.lang.Object
javax.swing.text.View
javax.swing.text.GlyphView
- 所有已实现的接口:
-
Cloneable
,SwingConstants
,TabableView
- 直接已知的子类:
-
LabelView
GlyphView是文本模型中元素上映射的视图的样式化文本块。该视图通常负责以某种方式使用字符级属性显示文本字形。GlyphPainter类的实现用于执行实际的渲染和模型/视图转换。这将渲染与布局和与模型关联的管理分离开来。
该视图支持为格式化而断开。通过断开产生的片段共享具有元素主要责任的视图(即它们是嵌套类并且只携带少量自己的状态),因此它们可以共享其资源。
由于此视图表示可能嵌入制表符的文本,因此它实现了TabableView
接口。只有在此视图嵌入支持制表符扩展的容器中时,制表符才会被展开。ParagraphView是支持制表符扩展的容器的一个示例。
- 自从:
- 1.3
-
Nested Class Summary
-
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 TypeMethodDescriptionbreakView
(int axis, int p0, float pos, float len) 在给定长度和给定轴上断开此视图。void
changedUpdate
(DocumentEvent e, Shape a, ViewFactory f) 来自文档的通知,属性在此视图负责的位置发生了更改。protected void
检查是否存在字形绘制器。protected final Object
clone()
创建一个浅拷贝。createFragment
(int p0, int p1) 创建表示元素部分的视图。float
getAlignment
(int axis) 确定沿轴线对齐此视图的期望对齐方式。获取用于渲染字形的背景颜色。int
getBreakWeight
(int axis, float pos, float len) 确定此视图中断开机会的吸引程度。int
获取此视图负责的模型部分。getFont()
获取应基于的字形的字体。获取用于渲染字形的前景颜色。获取当前安装的字形绘制器。float
getMinimumSpan
(int axis) 确定此视图沿轴线的最小跨度。int
getNextVisualPositionFrom
(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) 提供一种确定下一个可能放置插入符号的视觉表示模型位置的方法。float
getPartialSpan
(int p0, int p1) 确定视图的一部分沿着与制表符扩展相同的轴线的跨度。float
getPreferredSpan
(int axis) 确定此视图沿轴线的首选跨度。int
获取此视图负责的模型部分。float
getTabbedSpan
(float x, TabExpander e) 使用给定的制表符扩展实现确定所需的跨度。获取用于此视图中存在制表符时使用的TabExpander。getText
(int p0, int p1) 获取占据给定范围的文本的引用。void
insertUpdate
(DocumentEvent e, Shape a, ViewFactory f) 通知文档在此视图负责的位置插入了内容。boolean
确定字形是否应具有删除线。boolean
确定字形是否应呈现为上标。boolean
确定字形是否应呈现为下标。boolean
确定字形是否应该带有下划线。modelToView
(int pos, Shape a, Position.Bias b) 提供从文档模型坐标空间到其映射视图的坐标空间的映射。void
渲染文本样式运行的一部分。void
removeUpdate
(DocumentEvent e, Shape a, ViewFactory f) 通知文档在此视图负责的位置删除了内容。void
设置用于渲染字形的绘制器。int
viewToModel
(float x, float y, Shape a, Position.Bias[] biasReturn) 提供从视图坐标空间到模型的逻辑坐标空间的映射。Methods declared in class javax.swing.text.View
append, forwardUpdate, forwardUpdateToView, getAttributes, getChildAllocation, getContainer, getDocument, getElement, getGraphics, getMaximumSpan, getParent, getResizeWeight, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, replace, setParent, setSize, updateChildren, updateLayout, viewToModel
-
Constructor Details
-
GlyphView
在元素上包装一个新视图。- 参数:
-
elem
- 元素
-
-
Method Details
-
clone
创建一个浅拷贝。这由createFragment和breakView方法使用。 -
getGlyphPainter
获取当前安装的字形绘制器。如果尚未安装绘制器,并且尚未需要默认值,则返回null。- 返回:
- 当前安装的字形绘制器
-
setGlyphPainter
设置用于渲染字形的绘制器。- 参数:
-
p
- 用于渲染字形的绘制器
-
getText
获取占据给定范围的文本的引用。通常由GlyphPainter使用,以确定应为其呈现字形的字符。- 参数:
-
p0
- 起始文档偏移量 >= 0 -
p1
- 结束文档偏移量 >= p0 - 返回:
-
包含文本的
Segment
-
getBackground
获取用于渲染字形的背景颜色。如果没有背景颜色,则应返回null。如果关联文档是样式化文档,则实现为调用StyledDocument.getBackground
,否则返回null。- 返回:
- 用于渲染字形的背景颜色
-
getForeground
获取用于渲染字形的前景颜色。如果没有前景颜色,则应返回null。如果关联文档是StyledDocument,则实现为调用StyledDocument.getBackground
。如果关联文档不是StyledDocument,则使用关联组件的前景颜色。如果没有关联组件,则返回null。- 返回:
- 用于渲染字形的前景颜色
-
getFont
获取应基于的字形的字体。如果关联文档是StyledDocument,则实现为调用StyledDocument.getFont
。如果关联文档不是StyledDocument,则使用关联组件的字体。如果没有关联组件,则返回null。- 返回:
- 应基于的字形的字体
-
isUnderline
public boolean isUnderline()确定字形是否应该带有下划线。如果为true,则应通过基线绘制下划线。- 返回:
- 字形是否应该带有下划线
-
isStrikeThrough
public boolean isStrikeThrough()确定字形是否应具有删除线。如果为true,则应通过字形中心绘制一条线。- 返回:
- 字形是否应具有删除线
-
isSubscript
public boolean isSubscript()确定字形是否应呈现为上标。- 返回:
- 字形是否应呈现为上标
-
isSuperscript
public boolean isSuperscript()确定字形是否应呈现为下标。- 返回:
- 字形是否应呈现为下标
-
getTabExpander
获取用于此视图中存在制表符时使用的TabExpander。- 返回:
- 如果此视图中存在制表符,则使用的TabExpander
-
checkPainter
protected void checkPainter()检查是否存在字形绘制器。如果绘制器不存在,将安装默认的字形绘制器。 -
getTabbedSpan
使用给定的制表符扩展实现确定所需的跨度。- 指定者:
-
getTabbedSpan
在接口TabableView
- 参数:
-
x
- 用于制表符扩展的视图位置 >= 0 -
e
- 遇到制表符时如何扩展 - 返回:
- 所需的跨度 >= 0
- 参见:
-
getPartialSpan
public float getPartialSpan(int p0, int p1) 确定相同轴线上的制表符扩展跨度。这是供TabExpander使用的,用于处理制表符扩展涉及将没有空格的文本部分相对于制表符停止对齐的情况。因此,假设给定的范围不包含制表符。在服务getTabbedSpan或getPreferredSize时可以调用此方法。它必须安排自己的文本缓冲区以进行测量。
- 指定者:
-
getPartialSpan
在接口TabableView
- 参数:
-
p0
- 起始文档偏移量 >= 0 -
p1
- 结束文档偏移量 >= p0 - 返回:
- 跨度 >= 0
-
getStartOffset
public int getStartOffset()获取此视图负责的模型部分。- 覆盖:
-
getStartOffset
在类View
- 返回:
- 模型中的起始偏移量
- 参见:
-
getEndOffset
public int getEndOffset()获取此视图负责的模型部分。- 覆盖:
-
getEndOffset
在类View
中 - 返回:
- 模型中的结束偏移量
- 参见:
-
paint
渲染文本样式运行的一部分。 -
getMinimumSpan
public float getMinimumSpan(int axis) 确定此视图沿轴的最小跨度。此实现返回视图中最长的不可断开区域作为
View.X_AXIS
的最小跨度。- 覆盖:
-
getMinimumSpan
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS
或View.Y_AXIS
- 返回:
- 视图可以渲染的最小跨度
- 抛出:
-
IllegalArgumentException
- 如果axis
参数无效 - 参见:
-
getPreferredSpan
public float getPreferredSpan(int axis) 确定此视图沿轴的首选跨度。- 指定者:
-
getPreferredSpan
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 返回:
- 视图希望渲染的跨度 >= 0。通常会告诉视图渲染返回的跨度,尽管不能保证。父级可能选择调整或分割视图。
-
getAlignment
public float getAlignment(int axis) 确定此视图沿轴的期望对齐方式。对于标签,y轴的对齐方式是沿着字体基线,x轴的对齐方式是超类的对齐方式。- 覆盖:
-
getAlignment
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 返回:
- 期望的对齐方式。这应该是一个介于0.0和1.0之间的值,其中0表示在原点对齐,1.0表示远离原点的完整跨度对齐。对齐度为0.5将是视图的中心。
-
modelToView
提供了从文档模型坐标空间到其映射视图的坐标空间的映射。- 指定者:
-
modelToView
在类View
中 - 参数:
-
pos
- 要转换的位置 >= 0 -
a
- 要渲染到的分配区域 -
b
- 可以是Position.Bias.Forward
或Position.Bias.Backward
- 返回:
- 给定位置的边界框
- 抛出:
-
BadLocationException
- 如果给定位置不表示关联文档中的有效位置 - 参见:
-
viewToModel
提供了从视图坐标空间到模型的逻辑坐标空间的映射。- 指定者:
-
viewToModel
在类View
中 - 参数:
-
x
- X坐标 >= 0 -
y
- Y坐标 >= 0 -
a
- 要渲染到的分配区域 -
biasReturn
- 作为该数组的第零个元素返回的Position.Bias.Forward
或Position.Bias.Backward
- 返回:
- 最能代表给定视图点的模型位置 >= 0
- 参见:
-
getBreakWeight
public int getBreakWeight(int axis, float pos, float len) 确定此视图中断点的吸引力。这可用于确定在格式化过程中调用breakView
的最具吸引力的视图。权重越高,中断越有吸引力。权重等于或低于View.BadBreakWeight
的值不应考虑中断。大于或等于View.ForcedBreakWeight
的值应该中断。此实现将Y_AXIS的情况转发到超类。在X_AXIS上,可能返回以下值。
- View.ExcellentBreakWeight
- 如果所需断点位置之前有空格。
- View.BadBreakWeight
- 如果所需断点位置导致起始偏移量的断点位置。
- View.GoodBreakWeight
- 如果不发生其他条件。
- 覆盖:
-
getBreakWeight
在类View
中 - 参数:
-
axis
- 可以是View.X_AXIS或View.Y_AXIS -
pos
- 所需断开视图起始位置的潜在位置 >= 0。这可能对计算制表位置有用。 -
len
- 指定从pos开始的相对长度,其中希望发生潜在断点 >= 0。 - 返回:
- 权重,应该是View.ForcedBreakWeight和View.BadBreakWeight之间的值。
- 参见:
-
breakView
在给定长度和轴上中断此视图。这是为了尝试在空格位置中断,并返回带有空格的片段。如果找不到空格位置,则使用最近的字符。 -
createFragment
创建表示元素一部分的视图。在格式化操作期间,这可能对于测量视图片段很有用。如果视图不支持分段(默认情况),则应返回自身。此视图支持分段。它被实现为返回一个嵌套类,该类在此视图中共享状态,仅表示视图的一部分。
- 覆盖:
-
createFragment
在类View
中 - 参数:
-
p0
- 起始偏移量 >= 0。这应该是大于或等于元素起始偏移量且小于元素结束偏移量的值。 -
p1
- 结束偏移量 > p0。这应该是小于或等于元素结束偏移量且大于元素起始偏移量的值。 - 返回:
- 视图片段,如果视图不支持分段,则返回自身
- 参见:
-
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.WEST、SwingConstants.EAST、SwingConstants.NORTH或SwingConstants.SOUTH。 -
biasRet
- 返回的偏好 - 返回:
- 在模型中最能代表下一个位置视觉位置的位置。
- 抛出:
-
BadLocationException
- 给定位置不是文档中的有效位置 -
IllegalArgumentException
- 对于无效的方向
-
insertUpdate
通知文档中的某个位置插入了某些内容,该视图负责该位置。这是实现调用preferenceChanged沿着呈现字形的轴。- 覆盖:
-
insertUpdate
在类中的覆盖View
- 参数:
-
e
- 与关联文档的更改信息 -
a
- 视图的当前分配 -
f
- 如果视图有子项,则用于重建的工厂 - 参见:
-
removeUpdate
通知文档中的某个位置已删除某些内容,该视图负责该位置。这是实现调用preferenceChanged沿着呈现字形的轴。- 覆盖:
-
removeUpdate
在类中的覆盖View
- 参数:
-
e
- 与关联文档的更改信息 -
a
- 视图的当前分配 -
f
- 如果视图有子项,则用于重建的工厂 - 参见:
-
changedUpdate
从文档中通知属性在该视图负责的位置发生更改。这是实现调用preferenceChanged沿水平和垂直轴。- 覆盖:
-
changedUpdate
在类中的覆盖View
- 参数:
-
e
- 与关联文档的更改信息 -
a
- 视图的当前分配 -
f
- 如果视图有子项,则用于重建的工厂 - 参见:
-