- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.GlyphView
-
- 实现的所有接口
-
Cloneable
,SwingConstants
,TabableView
- 已知直接子类:
-
LabelView
public class GlyphView extends View implements TabableView, Cloneable
GlyphView是一种样式化的文本块,表示映射到文本模型中元素的视图。 此视图通常负责以某种方式使用字符级属性显示文本字形。 GlyphPainter类的实现用于执行实际渲染和模型/视图转换。 这将渲染与布局和管理与模型的关联分开。视图支持打破以进行格式化。 破坏产生的碎片共享对元素负有主要责任的视图(即它们是嵌套类,只携带自己的少量状态),因此它们可以共享其资源。
由于此视图表示可能在其中嵌入选项卡的文本,因此它实现了
TabableView
接口。 只有在将此视图嵌入到执行制表符扩展的容器中时,才会展开选项卡。 ParagraphView是一个用于执行选项卡扩展的容器的示例。- 从以下版本开始:
- 1.3
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static class
GlyphView.GlyphPainter
用于执行字形渲染的类。
-
字段汇总
-
声明的属性在类 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
-
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 View
breakView(int axis, int p0, float pos, float len)
在给定长度的给定轴上打破此视图。void
changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
从文档中发出通知,告知该视图负责的位置中的属性已更改。protected void
checkPainter()
检查是否存在字形画家。protected Object
clone()
创建浅表副本。View
createFragment(int p0, int p1)
创建表示元素一部分的视图。float
getAlignment(int axis)
确定此视图沿轴的所需对齐方式。Color
getBackground()
获取用于渲染字形的背景颜色。int
getBreakWeight(int axis, float pos, float len)
确定此视图中休息机会的吸引力。int
getEndOffset()
获取此视图负责的模型部分。Font
getFont()
获取字形应基于的字体。Color
getForeground()
获取用于渲染字形的前景色。GlyphView.GlyphPainter
getGlyphPainter()
获取当前安装的字形画家。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
getStartOffset()
获取此视图负责的模型部分。float
getTabbedSpan(float x, TabExpander e)
使用给定的选项卡扩展实现时确定所需的跨度。TabExpander
getTabExpander()
如果此视图中存在选项卡,则获取TabExpander以使用。Segment
getText(int p0, int p1)
获取对占用给定范围的文本的引用。void
insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
通知在该视图负责的位置将某些内容插入到文档中。boolean
isStrikeThrough()
确定字形是否应该有删除线。boolean
isSubscript()
确定字形是否应该呈现为上标。boolean
isSuperscript()
确定字形是否应该呈现为下标。boolean
isUnderline()
确定字形是否应加下划线。Shape
modelToView(int pos, Shape a, Position.Bias b)
提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。void
paint(Graphics g, Shape a)
呈现文本样式运行的一部分。void
removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
通知在该视图负责的位置从文档中删除了某些内容。void
setGlyphPainter(GlyphView.GlyphPainter p)
设置用于渲染字形的画家。int
viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
提供从视图坐标空间到模型的逻辑坐标空间的映射。-
声明方法的类 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
-
-
-
-
构造方法详细信息
-
GlyphView
public GlyphView(Element elem)
构造一个包含在元素上的新视图。- 参数
-
elem
- 元素
-
-
方法详细信息
-
clone
protected final Object clone()
创建浅表副本。 这由createFragment和breakView方法使用。
-
getGlyphPainter
public GlyphView.GlyphPainter getGlyphPainter()
获取当前安装的字形画家。 如果尚未安装画家,并且尚不需要默认值,则返回null。- 结果
- 当前安装的字形画家
-
setGlyphPainter
public void setGlyphPainter(GlyphView.GlyphPainter p)
设置用于渲染字形的画家。- 参数
-
p
- 用于渲染字形的画家
-
getText
public Segment getText(int p0, int p1)
获取对占用给定范围的文本的引用。 GlyphPainter通常使用它来确定应该为其呈现字形的字符。- 参数
-
p0
- 起始文档偏移> = 0 -
p1
- 结束文档偏移> = p0 - 结果
-
Segment
包含文本
-
getBackground
public Color getBackground()
获取用于渲染字形的背景颜色。 如果没有背景颜色,则应返回null。 如果关联文档是样式文档,则执行此操作以调用StyledDocument.getBackground
,否则返回null。- 结果
- 用于渲染字形的背景颜色
-
getForeground
public Color getForeground()
获取用于渲染字形的前景色。 如果没有前景色,则应返回null。 如果关联文档是StyledDocument,则调用StyledDocument.getBackground
。 如果关联文档不是StyledDocument,则使用关联的组件前景色。 如果没有关联的组件,则返回null。- 结果
- 用于渲染字形的前景色
-
getFont
public Font 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
public TabExpander getTabExpander()
如果此视图中存在选项卡,则获取TabExpander以使用。- 结果
- 如果此视图中存在选项卡,则使用TabExpander
-
checkPainter
protected void checkPainter()
检查是否存在字形画家。 如果画家不存在,将安装默认的字形画家。
-
getTabbedSpan
public float getTabbedSpan(float x, TabExpander e)
使用给定的选项卡扩展实现时确定所需的跨度。- Specified by:
-
getTabbedSpan
在界面TabableView
- 参数
-
x
- 为了选项卡扩展> = 0,视图x
的位置。 -
e
- 遇到时如何展开选项卡。 - 结果
- 期望的跨度> = 0
- 另请参见:
-
TabableView.getTabbedSpan(float, javax.swing.text.TabExpander)
-
getPartialSpan
public float getPartialSpan(int p0, int p1)
确定与视图的一部分的制表符扩展沿同一轴的跨度。 这适用于TabExpander,用于选项卡扩展涉及对齐相对于制表位没有空格的文本部分的情况。 因此,假设给定的范围不包含制表符。在为getTabbedSpan或getPreferredSize提供服务时可以调用此方法。 它必须安排自己的文本缓冲区来进行测量。
- Specified by:
-
getPartialSpan
在界面TabableView
- 参数
-
p0
- 起始文档偏移量> = 0 -
p1
- 结束文档偏移> = p0 - 结果
- span> = 0
-
getStartOffset
public int getStartOffset()
获取此视图负责的模型部分。- 重写:
-
getStartOffset
在类View
- 结果
- 模型的起始偏移量
- 另请参见:
-
View.getStartOffset()
-
getEndOffset
public int getEndOffset()
获取此视图负责的模型部分。- 重写:
-
getEndOffset
在类View
- 结果
- 结束偏移到模型中
- 另请参见:
-
View.getEndOffset()
-
getMinimumSpan
public float getMinimumSpan(int axis)
确定此视图沿轴的最小跨度。此实现将视图中最长的不可破坏区域作为
View.X_AXIS
的最小跨度View.X_AXIS
。- 重写:
-
getMinimumSpan
在课堂上View
- 参数
-
axis
- 可能是View.X_AXIS
或View.Y_AXIS
- 结果
- 可以渲染视图的最小跨度
- 异常
-
IllegalArgumentException
- 如果axis
参数无效 - 另请参见:
-
View.getMinimumSpan(int)
-
getPreferredSpan
public float getPreferredSpan(int axis)
确定此视图沿轴的首选跨度。- Specified by:
-
getPreferredSpan
在类View
- 参数
-
axis
- 可以是View.X_AXIS或View.Y_AXIS - 结果
- 视图要渲染到的范围> = 0.通常,视图会被告知渲染到返回的范围内,但不能保证。 父母可以选择调整视图大小或打破视图。
- 另请参见:
-
View.getPreferredSpan(int)
-
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
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
提供从文档模型坐标空间到映射到它的视图的坐标空间的映射。- Specified by:
-
modelToView
在课堂上View
- 参数
-
pos
- 要转换的位置> = 0 -
a
- 要分配的已分配区域 -
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[] biasReturn)
提供从视图坐标空间到模型的逻辑坐标空间的映射。- Specified by:
-
viewToModel
在类View
- 参数
-
x
- X坐标> = 0 -
y
- Y坐标> = 0 -
a
- 要分配的已分配区域 -
biasReturn
-Position.Bias.Forward
或Position.Bias.Backward
作为此数组的第零个元素返回 - 结果
- 模型中最能代表给定视点的位置> = 0
- 另请参见:
-
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
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
-其中可能需要拆分> = 0从 POS指定的相对长度。 - 结果
- 权重,应该是View.ForcedBreakWeight和View.BadBreakWeight之间的值。
- 另请参见:
-
LabelView
,ParagraphView
,View.BadBreakWeight
,View.GoodBreakWeight
,View.ExcellentBreakWeight
,View.ForcedBreakWeight
-
breakView
public View breakView(int axis, int p0, float pos, float len)
在给定长度的给定轴上打破此视图。 实现此方法是为了尝试在空白位置上中断,并返回末尾带有空格的片段。 如果找不到空白位置,则使用最近的字符。- 重写:
-
breakView
类View
- 参数
-
axis
- 可以是View.X_AXIS或View.Y_AXIS -
p0
- 模型中片段应该p0
的位置> = 0的位置。 -
pos
- 沿着轴的位置,断开的视图将占据> = 0.这对于像标签计算这样的事情可能很有用。 -
len
- 指定沿轴的距离,其中需要潜在的中断> = 0。 - 结果
- 如果视图可以被破坏,则表示给定范围的视图片段。 如果视图不支持中断行为,则返回视图本身。
- 另请参见:
-
View.breakView(int, int, float, float)
-
createFragment
public View createFragment(int p0, int p1)
创建表示元素一部分的视图。 这在用于测量视图片段的格式化操作期间可能是有用的。 如果视图不支持分段(默认),则应返回自身。该视图确实支持分段。 它被实现为返回一个嵌套类,该类在此视图中共享状态,仅表示视图的一部分。
- 重写:
-
createFragment
在类View
- 参数
-
p0
- 起始偏移量> = 0.这应该是大于或等于元素起始偏移量且小于元素结束偏移量的值。 -
p1
- 结束偏移量> p0。 这应该是小于或等于元素结束偏移量并且大于起始偏移量的元素的值。 - 结果
- 视图片段,或者如果视图不支持分割成片段本身
- 另请参见:
-
LabelView
-
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
- 要转换的位置 -
a
- 要分配的已分配区域 -
direction
- 当前位置的方向,可以被认为是键盘上常见的箭头键。 这可能是SwingConstants.WEST,SwingConstants.EAST,SwingConstants.NORTH或SwingConstants.SOUTH。 -
b
- 偏见 -
biasRet
- 返回的偏见 - 结果
- 模型中最能代表下一个位置视觉位置的位置。
- 异常
-
BadLocationException
- 给定位置不是文档中的有效位置 -
IllegalArgumentException
- 无效指示
-
insertUpdate
public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
通知在该视图负责的位置将某些内容插入到文档中。 这被实现为沿着轴调用preferenceChanged呈现字形。- 重写:
-
insertUpdate
在类View
- 参数
-
e
- 来自关联文档的更改信息 -
a
- 当前视图的分配 -
f
- 如果视图具有子级,则用于重建的工厂 - 另请参见:
-
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
removeUpdate
public void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
通知在该视图负责的位置从文档中删除了某些内容。 这被实现为沿着轴调用preferenceChanged呈现字形。- 重写:
-
removeUpdate
在课堂上View
- 参数
-
e
- 来自关联文档的更改信息 -
a
- 当前视图的分配 -
f
- 如果视图具有子项,则用于重建的工厂 - 另请参见:
-
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
changedUpdate
public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
从文档中发出通知,告知该视图负责的位置中的属性已更改。 这是为了沿水平轴和垂直轴调用preferenceChanged。- 重写:
-
changedUpdate
在课堂上View
- 参数
-
e
- 来自关联文档的更改信息 -
a
- 当前视图的分配 -
f
- 如果视图具有子级,则用于重建的工厂 - 另请参见:
-
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
-
-