java.lang.Object javax.swing.text.View javax.swing.text.GlyphView
public class GlyphView
GlyphView 是一个样式化文本存储块,它表示在文本模型中的元素上映射的视图。此视图通常负责以某种方式使用字符级别属性显示文本字形。GlyphPainter 类的实现用于进行实际呈现和模型/视图转换。此操作分别呈现与该模型关联的布局和管理。
该视图支持为了格式化而进行的分解。通过分解产生的片段共享对元素负主要负责的视图(即它们是嵌套的类,只有其自身少量的状态),因此它们可以共享其资源。
因为此视图表示可以有嵌入其中的选项卡的文本,所以可实现 TabableView
接口。只有此视图嵌入进行选项卡扩展的容器时,才扩展选项卡。ParagraphView 是一个包含进行选项卡扩展的容器的示例。
嵌套类摘要 | |
---|---|
static class |
GlyphView.GlyphPainter 执行字形呈现的类。 |
字段摘要 |
---|
从类 javax.swing.text.View 继承的字段 |
---|
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS |
从接口 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 |
构造方法摘要 | |
---|---|
GlyphView(Element elem) 构造在元素上包装的新视图。 |
方法摘要 | |
---|---|
View |
breakView(int axis, int p0, float pos, float len) 在给定的轴上以给定的长度拆分此视图。 |
void |
changedUpdate(DocumentEvent e, Shape a, ViewFactory f) 发出通知,通知文档此视图负责的位置处的属性已更改。 |
protected void |
checkPainter() 检查是否存在字形 painter。 |
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() 获取当前安装的字形 painter。 |
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) 设置用于呈现字形的 painter。 |
int |
viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn) 提供从视图坐标空间到模型逻辑坐标空间的映射。 |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public GlyphView(Element elem)
elem
- 元素
方法详细信息 |
---|
protected final Object clone()
public GlyphView.GlyphPainter getGlyphPainter()
public void setGlyphPainter(GlyphView.GlyphPainter p)
public Segment getText(int p0, int p1)
p0
- 起始文档偏移量,该值 >= 0
p1
- 结束文档偏移量,该值 >= p0
Segment
public Color getBackground()
StyledDocument.getBackground
,否则返回 null。
public Color getForeground()
StyledDocument.getBackground
。如果相关文档不是一个 StyledDocument,则使用相关组件的前景色。如果没有相关组件,则返回 null。
public Font getFont()
StyledDocument.getFont
。如果相关文档不是一个 StyledDocument,则使用相关组件的字体。如果没有相关组件,则返回 null。
public boolean isUnderline()
public boolean isStrikeThrough()
public boolean isSubscript()
public boolean isSuperscript()
public TabExpander getTabExpander()
protected void checkPainter()
public float getTabbedSpan(float x, TabExpander e)
TabableView
中的
getTabbedSpan
x
- 为进行选项卡扩展该视图所在的位置,该位置 >= 0。
e
- 遇到选项卡时对其进行扩展的方法。
TabableView.getTabbedSpan(float, javax.swing.text.TabExpander)
public float getPartialSpan(int p0, int p1)
使用 getTabbedSpan 或 getPreferredSize 时可以调用此方法。它必须安排自己的文本缓冲区来进行测量。
TabableView
中的
getPartialSpan
p0
- 起始文档偏移量,该偏移量 >= 0
p1
- 结束文档偏移量,该偏移量 >= p0
public int getStartOffset()
View
中的
getStartOffset
View.getStartOffset()
public int getEndOffset()
View
中的
getEndOffset
View.getEndOffset()
public void paint(Graphics g, Shape a)
public float getPreferredSpan(int axis)
View
中的
getPreferredSpan
axis
- 可以是 View.X_AXIS 或 View.Y_AXIS
View.getPreferredSpan(int)
public float getAlignment(int axis)
View
中的
getAlignment
axis
- 可以是 View.X_AXIS 或 View.Y_AXIS
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
View
中的
modelToView
pos
- 要转换的位置,该位置 >= 0
a
- 要呈现的分配区域
b
- 可以是
Position.Bias.Forward
,也可以是
Position.Bias.Backward
BadLocationException
- 如果给定位置不表示相关文档中的有效位置
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
View
中的
viewToModel
x
- X 坐标,该坐标 >= 0
y
- Y 坐标,该坐标 >= 0
a
- 要在其中呈现的分配区域
biasReturn
- 将
Position.Bias.Forward
或
Position.Bias.Backward
作为此数组中的第零个元素返回
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public int getBreakWeight(int axis, float pos, float len)
breakView
的视图。权重越高,拆分的可能性越大。如果值等于或小于
View.BadBreakWeight
,则不应考虑拆分。值大于或等于
View.ForcedBreakWeight
时应该拆分视图。
实现此方法以转发到 Y_AXIS 的超类。沿 X_AXIS 可以返回以下值。
View
中的
getBreakWeight
axis
- 可以是 View.X_AXIS,也可以是 View.Y_AXIS
pos
- 已拆分视图的潜在起始位置,该位置 >= 0。这可能对计算选项卡的位置有用。
len
- 指定到所需的潜在拆分处
pos 的相对长度,该长度 >= 0。
LabelView
,
ParagraphView
,
View.BadBreakWeight
,
View.GoodBreakWeight
,
View.ExcellentBreakWeight
,
View.ForcedBreakWeight
public View breakView(int axis, int p0, float pos, float len)
axis
- 可以是 View.X_AXIS,也可以是 View.Y_AXIS
p0
- 模型中片段应该开始其表示形式的位置,该位置 >= 0。
pos
- 沿已拆分视图可能占用的轴的位置,该位置 >= 0。这可能对诸如选项卡计算一类的情况很有用。
len
- 指定的沿需要潜在拆分的轴的距离,该距离 >= 0。
View.breakView(int, int, float, float)
public View createFragment(int p0, int p1)
此视图确实支持分段。实现此方法以返回一个嵌套类,该类共享在此视图中只表示该视图的某一部分的状态。
View
中的
createFragment
p0
- 起始偏移量,该偏移量 >= 0。此值应该大于或等于元素起始偏移量且小于元素结束偏移量。
p1
- 结束偏移量,该偏移量 > p0。这应该是一个小于或等于元素结束偏移量且大于元素起始偏移量的值。
LabelView
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
View
中的
getNextVisualPositionFrom
pos
- 要转换的位置,该位置 >= 0
a
- 要呈现的分配区域
direction
- 相对当前位置的方向,可视为通常在键盘上看到的箭头键方向。此方向可以是 SwingConstants.WEST、SwingConstants.EAST、SwingConstants.NORTH 或 SwingConstants.SOUTH。
BadLocationException
IllegalArgumentException
- 如果方向无效
public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
View
中的
insertUpdate
e
- 来自相关文档的更改信息
a
- 视图的当前分配区域
f
- 用于重建的工厂(如果该视图有子级)
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
View
中的
removeUpdate
e
- 来自相关文档的更改信息
a
- 视图的当前分配区域
f
- 用于重建的工厂(如果该视图有子级)
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
View
中的
changedUpdate
e
- 来自相关文档的更改信息
a
- 视图的当前分配区域
f
- 用于重建的工厂(如果该视图有子级)
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)