public class GlyphView extends View implements TabableView, Cloneable
该视图支持打破格式化的目的。 通过破解产生的碎片分享了对元素负主要责任的观点(即它们是嵌套类,只携带少量自己的状态),以便它们可以共享其资源。
由于此视图表示可能嵌入其中的选项卡的文本,它实现了TabableView
接口。 如果此视图嵌入到执行制表符扩展的容器中,则只能扩展标签。 ParagraphView是一个允许标签扩展的容器的示例。
Modifier and Type | Class and Description |
---|---|
static class |
GlyphView.GlyphPainter
一个执行字形渲染的类。
|
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
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 | Method and Description |
---|---|
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)
提供从视图坐标空间到模型的逻辑坐标空间的映射。
|
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
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
- 起始文档offset> = 0
p1
- 结束文件offset> = p0
Segment
Segment
public Color getBackground()
StyledDocument.getBackground
,否则返回null。
public Color getForeground()
StyledDocument.getBackground
则可以调用StyledDocument.getBackground。
如果关联的文档不是StyledDocument,则使用关联的组件前景颜色。
如果没有关联的组件,则返回null。
public Font getFont()
StyledDocument.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)
getTabbedSpan
在界面
TabableView
x
- 视图将位于为了标签扩展> = 0目的的位置。
e
- 遇到时如何展开标签。
TabableView.getTabbedSpan(float, javax.swing.text.TabExpander)
public float getPartialSpan(int p0, int p1)
在为getTabbedSpan或getPreferredSize服务时可以调用此方法。 它必须安排自己的文本缓冲区进行测量。
getPartialSpan
在界面
TabableView
p0
- 起始文档offset> = 0
p1
- 结束文件offset> = p0
public int getStartOffset()
getStartOffset
在
View
View.getStartOffset()
public int getEndOffset()
getEndOffset
在
View
View.getEndOffset()
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)
public float getPreferredSpan(int axis)
getPreferredSpan
在
View
axis
- 可以是View.X_AXIS或View.Y_AXIS
View.getPreferredSpan(int)
public float getAlignment(int axis)
getAlignment
在
View
axis
- 可以是View.X_AXIS或View.Y_AXIS
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
modelToView
在
View
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)
viewToModel
在
View
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可能会返回以下值。
getBreakWeight
在
View
axis
- 可以是View.X_AXIS或View.Y_AXIS
pos
- 断开视图开始的潜在位置> = 0。这可能对计算制表位置有用。
len
- 指定需要潜在中断的
位置的距离> = 0的相对长度。
LabelView
, ParagraphView
, View.BadBreakWeight
, View.GoodBreakWeight
, View.ExcellentBreakWeight
, View.ForcedBreakWeight
public View breakView(int axis, int p0, float pos, float len)
breakView
在
View
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)
这个视图确实支持碎片化。 它被实现为返回在该视图中共享状态的嵌套类,仅表示视图的一部分。
createFragment
在
View
p0
- 起始偏移量> = 0。这应该是大于或等于元素起始偏移量并小于元素结束偏移量的值。
p1
- 结束偏移> p0。
这应该是小于或等于元素结束偏移量的值,并且大于元素起始偏移量。
LabelView
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
BadLocationException
。
getNextVisualPositionFrom
在
View
pos
- 转换的位置
a
- 要分配的区域
direction
- 从当前位置的方向,可以被认为是通常在键盘上找到的箭头键。
这可能是SwingConstants.WEST,SwingConstants.EAST,SwingConstants.NORTH或SwingConstants.SOUTH。
BadLocationException
- 给定的位置不是文档中有效的位置
IllegalArgumentException
- 无效方向
public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
insertUpdate
在类
View
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)
removeUpdate
在
View
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)
changedUpdate
在
View
e
- 相关文件的更改信息
a
- 视图的当前分配
f
- 工厂使用重建如果视图有孩子
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)