|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.font.TextLayout
public final class TextLayout
TextLayout
是样式字符数据的不可变图形表示形式。
它提供以下功能:
TextLayout
对象可以使用其 draw
方法呈现。
可以直接构造 TextLayout
或通过使用 LineBreakMeasurer
构造它。直接进行构造时,源文本表示一个段落。LineBreakMeasurer
允许带样式的文本断行,以适应特定的宽度。有关的更多信息,请参阅 LineBreakMeasurer
文档。
TextLayout
的逻辑构造过程如下:
TextAttribute.FONT
属性,则首先使用该字体,否则,通过使用已定义的属性计算默认字体
从 TextLayout
对象的方法返回的所有图形信息都相对于 TextLayout
的原点,它是 TextLayout
对象的基线与其左边缘的交叉点。而且,还假定传递到 TextLayout
对象的方法的坐标也相对于 TextLayout
对象的原点。客户端通常需要在 TextLayout
对象的坐标系统和另一对象(如 Graphics
对象)中的坐标系统之间进行转换。
根据样式文本创建 TextLayout
对象,但它们不保留对其源文本的引用。因此,对先前用来生成 TextLayout
的文本的改动不会影响 TextLayout
。
TextLayout
对象的三个方法(getNextRightHit
、getNextLeftHit
和 hitTestChar
)都返回 TextHitInfo
实例。这些 TextHitInfo
对象中的偏移量相对于 TextLayout
的起始处,而不是相对于用于创建 TextLayout
的文本。同样,接受 TextHitInfo
实例作为参数的 TextLayout
方法将 TextHitInfo
对象的偏移量看做相对于 TextLayout
,而不是相对于其他任何基础文本存储模型。
示例:
构造并绘制 TextLayout
及其边界矩形:
Graphics2D g = ...; Point2D loc = ...; Font font = Font.getFont("Helvetica-bold-italic"); FontRenderContext frc = g.getFontRenderContext(); TextLayout layout = new TextLayout("This is a string", font, frc); layout.draw(g, (float)loc.getX(), (float)loc.getY()); Rectangle2D bounds = layout.getBounds(); bounds.setRect(bounds.getX()+loc.getX(), bounds.getY()+loc.getY(), bounds.getWidth(), bounds.getHeight()); g.draw(bounds);
对 TextLayout
进行命中测试(确定哪个字符位于特定图形位置上):
Point2D click = ...; TextHitInfo hit = layout.hitTestChar( (float) (click.getX() - loc.getX()), (float) (click.getY() - loc.getY()));
对按下向右方向键进行响应:
int insertionIndex = ...; TextHitInfo next = layout.getNextRightHit(insertionIndex); if (next != null) { // translate graphics to origin of layout on screen g.translate(loc.getX(), loc.getY()); Shape[] carets = layout.getCaretShapes(next.getInsertionIndex()); g.draw(carets[0]); if (carets[1] != null) { g.draw(carets[1]); } }
绘制一个对应于源文本中的子字符串的选择范围。选择的区域在视觉上可能是不连续的:
// selStart, selLimit should be relative to the layout, // not to the source text int selStart = ..., selLimit = ...; Color selectionColor = ...; Shape selection = layout.getLogicalHighlightShape(selStart, selLimit); // selection may consist of disjoint areas // graphics is assumed to be tranlated to origin of layout g.setColor(selectionColor); g.fill(selection);
绘制一个视觉上连续的选择范围。选择范围可能对应源文本中的多个子字符串。通过 getLogicalRangesForVisualSelection()
可以获得相应源文本的子字符串范围:
TextHitInfo selStart = ..., selLimit = ...; Shape selection = layout.getVisualHighlightShape(selStart, selLimit); g.setColor(selectionColor); g.fill(selection); int[] ranges = getLogicalRangesForVisualSelection(selStart, selLimit); // ranges[0], ranges[1] is the first selection range, // ranges[2], ranges[3] is the second selection range, etc.
LineBreakMeasurer
,
TextAttribute
,
TextHitInfo
嵌套类摘要 | |
---|---|
static class |
TextLayout.CaretPolicy
定义确定强插入符位置的策略。 |
字段摘要 | |
---|---|
static TextLayout.CaretPolicy |
DEFAULT_CARET_POLICY
客户端未指定策略时使用此 CaretPolicy 。 |
构造方法摘要 | |
---|---|
TextLayout(AttributedCharacterIterator text,
FontRenderContext frc)
根据样式文本上的迭代器构造一个 TextLayout 。 |
|
TextLayout(String string,
Font font,
FontRenderContext frc)
根据 String 和 Font 构造一个 TextLayout 。 |
|
TextLayout(String string,
Map<? extends AttributedCharacterIterator.Attribute,?> attributes,
FontRenderContext frc)
根据 String 和属性集构造一个 TextLayout 。 |
方法摘要 | |
---|---|
protected Object |
clone()
创建此 TextLayout 的副本。 |
void |
draw(Graphics2D g2,
float x,
float y)
在指定的 Graphics2D 上下文中的指定位置上呈现此 TextLayout 。 |
boolean |
equals(Object obj)
如果指定 Object 是一个 TextLayout 对象,且指定的 Object 等于此 TextLayout ,则返回 true 。 |
boolean |
equals(TextLayout rhs)
如果两个布局相等,则返回 true 。 |
float |
getAdvance()
返回此 TextLayout 的 advance。 |
float |
getAscent()
返回此 TextLayout 的 ascent。 |
byte |
getBaseline()
返回此 TextLayout 的基线。 |
float[] |
getBaselineOffsets()
返回用于此 TextLayout 的基线的偏移量数组。 |
Shape |
getBlackBoxBounds(int firstEndpoint,
int secondEndpoint)
返回指定范围中字符的黑框边界。 |
Rectangle2D |
getBounds()
返回此 TextLayout 的边界。 |
float[] |
getCaretInfo(TextHitInfo hit)
返回与对应于 hit 的插入符有关的信息。 |
float[] |
getCaretInfo(TextHitInfo hit,
Rectangle2D bounds)
返回与对应于 hit 的插入符有关的信息。 |
Shape |
getCaretShape(TextHitInfo hit)
返回表示此 TextLayout 的自然边界中指定目标字符处的插入符的 Shape 。 |
Shape |
getCaretShape(TextHitInfo hit,
Rectangle2D bounds)
返回表示指定边界内指定目标字符处的插入符的 Shape 。 |
Shape[] |
getCaretShapes(int offset)
返回对应于强插入符和弱插入符的两条路径。 |
Shape[] |
getCaretShapes(int offset,
Rectangle2D bounds)
返回对应于强插入符和弱插入符的两条路径。 |
Shape[] |
getCaretShapes(int offset,
Rectangle2D bounds,
TextLayout.CaretPolicy policy)
返回对应于强插入符和弱插入符的两条路径。 |
int |
getCharacterCount()
返回由此 TextLayout 表示的字符数。 |
byte |
getCharacterLevel(int index)
返回 index 处字符的级别。 |
float |
getDescent()
返回此 TextLayout 的 descent。 |
TextLayout |
getJustifiedLayout(float justificationWidth)
创建调整到指定宽度的此 TextLayout 的一个副本。 |
float |
getLeading()
返回 TextLayout 的行距。 |
Shape |
getLogicalHighlightShape(int firstEndpoint,
int secondEndpoint)
返回封闭指定范围中逻辑选择范围的 Shape ,它扩展到了此 TextLayout 的自然边界。 |
Shape |
getLogicalHighlightShape(int firstEndpoint,
int secondEndpoint,
Rectangle2D bounds)
返回封闭指定范围中扩展到指定 bounds 的逻辑选择范围的 Shape 。 |
int[] |
getLogicalRangesForVisualSelection(TextHitInfo firstEndpoint,
TextHitInfo secondEndpoint)
返回对应于可视选择范围的逻辑文本范围。 |
TextHitInfo |
getNextLeftHit(int offset)
返回下一个插入符左侧(顶部)的目标字符;如果没有这种字符,则返回 null 。 |
TextHitInfo |
getNextLeftHit(int offset,
TextLayout.CaretPolicy policy)
返回下一个插入符左侧(顶部)的目标字符;如果没有这种字符,则返回 null 。 |
TextHitInfo |
getNextLeftHit(TextHitInfo hit)
返回下一个插入符左侧(顶部)的目标字符;如果没有这种字符,则返回 null 。 |
TextHitInfo |
getNextRightHit(int offset)
返回下一个插入符右侧(底部)的目标字符;如果没有这种字符,则返回 null 。 |
TextHitInfo |
getNextRightHit(int offset,
TextLayout.CaretPolicy policy)
返回下一个插入符右侧(底部)的目标字符;如果没有这种字符,则返回 null 。 |
TextHitInfo |
getNextRightHit(TextHitInfo hit)
返回下一个插入符右侧(底部)的目标字符;如果没有这种字符,则返回 null 。 |
Shape |
getOutline(AffineTransform tx)
返回表示此 TextLayout 的轮廓的 Shape 。 |
float |
getVisibleAdvance()
返回此 TextLayout 的 advance 与结尾空白的差。 |
Shape |
getVisualHighlightShape(TextHitInfo firstEndpoint,
TextHitInfo secondEndpoint)
返回封闭指定范围中扩展到指定边界的可视选择范围的 Shape 。 |
Shape |
getVisualHighlightShape(TextHitInfo firstEndpoint,
TextHitInfo secondEndpoint,
Rectangle2D bounds)
返回封闭指定范围中扩展到 bounds 的可视选择范围的路径。 |
TextHitInfo |
getVisualOtherHit(TextHitInfo hit)
返回位于指定目标字符的插入符另一侧的目标字符。 |
protected void |
handleJustify(float justificationWidth)
调整此布局。 |
int |
hashCode()
返回此 TextLayout 的哈希码。 |
TextHitInfo |
hitTestChar(float x,
float y)
返回对应于指定点的 TextHitInfo 。 |
TextHitInfo |
hitTestChar(float x,
float y,
Rectangle2D bounds)
返回对应于指定点的 TextHitInfo 。 |
boolean |
isLeftToRight()
如果此 TextLayout 的基本方向是从左到右,则返回 true ;如果基本方向是从右到左,则返回 false 。 |
boolean |
isVertical()
如果此 TextLayout 是垂直的,则返回 true 。 |
String |
toString()
返回此 TextLayout 的调试信息。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final TextLayout.CaretPolicy DEFAULT_CARET_POLICY
CaretPolicy
。对于此策略,方向与行方向相同的字符的命中要强于对反方向字符的命中。如果字符的方向相同,则对字符开始边的命中要强于对字符结尾边的命中。
构造方法详细信息 |
---|
public TextLayout(String string, Font font, FontRenderContext frc)
String
和 Font
构造一个 TextLayout
。使用指定的 Font
样式化所有文本。
String
必须指定单个文本段,因为双向算法需要整个段落。
string
- 要显示的文本font
- 用于样式化文本的 Font
frc
- 包含关于正确测量文本所需的图形设备的信息。根据设备分辨率和属性(如抗锯齿)的不同,文本测量可能稍有变化。此参数未指定 TextLayout
和用户空间之间的转换。public TextLayout(String string, Map<? extends AttributedCharacterIterator.Attribute,?> attributes, FontRenderContext frc)
String
和属性集构造一个 TextLayout
。
使用提供的属性样式化所有文本。
String
必须指定单个文本段,因为双向算法需要整个段落。
string
- 要显示的文本attributes
- 用于样式化文本的属性frc
- 包含关于正确测量文本所需的图形设备的信息。根据设备分辨率和属性(如抗锯齿)的不同,文本测量可能稍有变化。此参数未指定 TextLayout
和用户空间之间的转换。public TextLayout(AttributedCharacterIterator text, FontRenderContext frc)
TextLayout
。
该迭代器必须指定单个文本段,因为双向算法需要整个段落。
text
- 要显示的样式文本frc
- 包含关于正确测量文本所需的图形设备的信息。根据设备分辨率和属性(如抗锯齿)的不同,文本测量可能稍有变化。此参数未指定 TextLayout
和用户空间之间的转换。方法详细信息 |
---|
protected Object clone()
TextLayout
的副本。
Object
中的 clone
Cloneable
public TextLayout getJustifiedLayout(float justificationWidth)
TextLayout
的一个副本。
如果已调整了此 TextLayout
,则抛出异常。如果此 TextLayout
对象的调整率为零,将返回与此 TextLayout
相同的 TextLayout
。
justificationWidth
- 调整行时使用的宽度。要获得最佳结果,该宽度与行的当前 advance 不应有太大差别。
TextLayout
。
Error
- 如果已调整了此布局,则抛出 Error。protected void handleJustify(float justificationWidth)
某些代码依赖于布局的不可变性。因此子类不应直接调用该方法,而是应调用 getJustifiedLayout,getJustifiedLayout 将在此布局的副本上调用此方法,而保留原始布局。
justificationWidth
- 调整行时使用的宽度。要获得最佳结果,该宽度与行的当前 advance 不应有太大差别。getJustifiedLayout(float)
public byte getBaseline()
TextLayout
的基线。基线是 Font
中定义的一个值,它可以是 roman、centered 或 hanging。Ascent 和 descent 相对于此基线。baselineOffsets
也相对于此基线。
TextLayout
的基线。getBaselineOffsets()
,
Font
public float[] getBaselineOffsets()
TextLayout
的基线的偏移量数组。
该数组用 Font
中定义的 roman、centered 或 hanging 值之一进行索引。这些值相对于此 TextLayout
对象的基线,所以 getBaselineOffsets[getBaseline()] == 0
。将偏移量添加到 TextLayout
对象基线所在的位置处,以获取新基线的位置。
TextLayout
的基线的偏移量数组。getBaseline()
,
Font
public float getAdvance()
TextLayout
的 advance。该 advance 是在行方向上测量的、从原点到最右端(底部)字符 advance 的距离。
TextLayout
的 advance。public float getVisibleAdvance()
TextLayout
的 advance 与结尾空白的差。
TextLayout
的 advance 与结尾空白的差。getAdvance()
public float getAscent()
TextLayout
的 ascent。ascent 是从 TextLayout
的顶端(右端)到基线的距离。它始终为正数或零。ascent 足以容纳上标文本,它是每个字形的 ascent、offset 和 baseline 总和的最大值。
TextLayout
的 ascent。public float getDescent()
TextLayout
的 descent。descent 是从基线到 TextLayout
底部(左端)的距离。它始终为正数或零。descent 足以容纳下标文本,它是每个字形的 descent、偏移量和基线总和的最大值。
TextLayout
的 descent。public float getLeading()
TextLayout
的行距。行距是建议的此 TextLayout
的行间距。
行距通过 TextLayout
中所有字形向量的 leading、descent 和 baseline 计算。算法大致如下:
maxD = 0; maxDL = 0; for (GlyphVector g in all glyphvectors) { maxD = max(maxD, g.getDescent() + offsets[g.getBaseline()]); maxDL = max(maxDL, g.getDescent() + g.getLeading() + offsets[g.getBaseline()]); } return maxDL - maxD;
TextLayout
的行距。public Rectangle2D getBounds()
TextLayout
的边界。边界包含 TextLayout
可以绘制的所有像素。它不可能与 TextLayout
的 ascent、descent、origin 或 advance 完全一致。
Rectangle2D
,它是此 TextLayout
的边界。public boolean isLeftToRight()
TextLayout
的基本方向是从左到右,则返回 true
;如果基本方向是从右到左,则返回 false
。TextLayout
具有从左到右 (LTR) 或从右到左 (RTL) 的基本方向。基本方向与行中文本的实际方向无关,可以是 LTR、RTL 或混向。默认情况下,从左到右布局按左对齐来定位。如果布局在制表行上进行,由于制表符是从左到右,因此逻辑连续布局的定位是从左到右。对于 RTL 布局则相反。默认情况下,它们是按左对齐来定位的,并且制表符是从右到左。
TextLayout
的基本方向是从左到右,则返回 true
;否则返回 false
。public boolean isVertical()
TextLayout
是垂直的,则返回 true
。
TextLayout
是垂直到处,则返回 true
;否则返回 false
。public int getCharacterCount()
TextLayout
表示的字符数。
TextLayout
中的字符数。public float[] getCaretInfo(TextHitInfo hit, Rectangle2D bounds)
hit
的插入符有关的信息。数组的第一个元素是此插入符与基线的交集。数组的第二个元素是插入符的反斜面(排列/上升)。
此方法仅用于获取信息。要显示插入符,最好使用 getCaretShapes
。
hit
- 此 TextLayout
中的目标字符bounds
- 构造插入符位置的边界
getCaretShapes(int, Rectangle2D, TextLayout.CaretPolicy)
,
Font.getItalicAngle()
public float[] getCaretInfo(TextHitInfo hit)
hit
的插入符有关的信息。此方法是 getCaretInfo
的便捷用法,它使用了此 TextLayout
的自然边界。
hit
- 此 TextLayout
中的目标字符
public TextHitInfo getNextRightHit(TextHitInfo hit)
null
。如果目标字符索引超出范围,则抛出 IllegalArgumentException
。
hit
- 此布局中的目标字符
null
。public TextHitInfo getNextRightHit(int offset, TextLayout.CaretPolicy policy)
null
。目标字符位于指定偏移量处根据指定策略确定的强插入符的右侧。返回的目标字符是根据指定策略确定的两个可能目标字符中较强的一个。
offset
- 此 TextLayout
中的插入偏移量。不能小于 0 或大于此 TextLayout
对象的字符计数。policy
- 用来选择强插入符的策略
null
。public TextHitInfo getNextRightHit(int offset)
null
。目标字符位于指定偏移量处根据默认策略确定的强插入符的右侧。返回的目标字符是根据默认策略确定的两个可能目标字符中较强的一个。
offset
- 此 TextLayout
中的插入偏移量。不能小于 0 或大于该 TextLayout
对象的字符计数。
null
。public TextHitInfo getNextLeftHit(TextHitInfo hit)
null
。如果目标字符索引超出范围,则抛出 IllegalArgumentException
。
hit
- 此 TextLayout
中的目标字符。
null
。public TextHitInfo getNextLeftHit(int offset, TextLayout.CaretPolicy policy)
null
。目标字符位于指定偏移量处根据指定策略确定的强插入符的左侧。返回的目标字符是根据指定策略确定的两个可能目标字符中较强的一个。
offset
- 此 TextLayout
中的插入偏移量。不能小于 0 或大于此 TextLayout
对象的字符计数。policy
- 用来选择强插入符的策略
null
。public TextHitInfo getNextLeftHit(int offset)
null
。目标字符位于指定偏移量处根据默认策略确定的强插入符的左侧。返回的目标字符是根据默认策略确定的两个可能目标字符中较强的一个。
offset
- 此 TextLayout
中的插入偏移量。不能小于 0 或大于此 TextLayout
对象的字符计数。
null
。public TextHitInfo getVisualOtherHit(TextHitInfo hit)
hit
- 指定的目标字符
public Shape getCaretShape(TextHitInfo hit, Rectangle2D bounds)
Shape
。
hit
- 生成插入符处的目标字符bounds
- 用于生成插入符的 TextLayout
的边界。
Shape
。public Shape getCaretShape(TextHitInfo hit)
TextLayout
的自然边界中指定目标字符处的插入符的 Shape
。
hit
- 生成插入符处的目标字符
Shape
。public byte getCharacterLevel(int index)
index
处字符的级别。索引 -1 和 characterCount
被分配为此 TextLayout
的基本级别。
index
- 获取其级别的字符的索引
public Shape[] getCaretShapes(int offset, Rectangle2D bounds, TextLayout.CaretPolicy policy)
offset
- 此 TextLayout
中的偏移量bounds
- 插入符扩展到的边界policy
- 指定的 CaretPolicy
null
。public Shape[] getCaretShapes(int offset, Rectangle2D bounds)
getCaretShapes
的便捷用法。
offset
- 此 TextLayout
中的偏移量bounds
- 插入符扩展到的边界
DEFAULT_CARET_POLICY
定义的强插入符和弱插入符的两条路径。public Shape[] getCaretShapes(int offset)
getCaretShapes
的便捷用法,后者使用默认插入符策略和此 TextLayout
对象的自然边界。
offset
- 此 TextLayout
中的偏移量
DEFAULT_CARET_POLICY
定义的强插入符和弱插入符的两条路径。public int[] getLogicalRangesForVisualSelection(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint)
firstEndpoint
- 可视范围的端点secondEndpoint
- 可视范围的另一个端点。此端点可以小于 firstEndpoint
。
getVisualHighlightShape(TextHitInfo, TextHitInfo, Rectangle2D)
public Shape getVisualHighlightShape(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint, Rectangle2D bounds)
bounds
的可视选择范围的路径。
如果选择范围包括最左侧(最顶部)的位置,则选择范围将扩展到 bounds
的左侧(顶部)。如果选择范围包括最右侧(最底部)的位置,则选择范围将扩展到边界的右侧(底部)。选择范围的高度(垂直行上的宽度)始终扩展到 bounds
。
尽管选择范围始终是连续的,但逻辑选择文本在混向文本的行上可能是不连续的。所选文本的逻辑范围可以使用 getLogicalRangesForVisualSelection
检索。例如,假设文本 "ABCdef" 中的大写字母指示在从右到左的行上呈现的从右到左的文本,可视选择范围从 0L("A" 的开始边)到 3T("d" 的结尾边)。文本显示如下,粗体下划线区域表示选择范围:
defCBA因为视觉上连续的文本在逻辑上是不连续的,所以逻辑选择范围为 0-3、4-6 (ABC, ef)。还请注意的是,由于选择了布局上最右侧的位置("A" 的右边),因此选择范围将扩展到边界的右侧。
firstEndpoint
- 可视选择范围的端点secondEndpoint
- 可视选择范围的另一个端点bounds
- 选择范围扩展到的边界矩形
Shape
。getLogicalRangesForVisualSelection(TextHitInfo, TextHitInfo)
,
getLogicalHighlightShape(int, int, Rectangle2D)
public Shape getVisualHighlightShape(TextHitInfo firstEndpoint, TextHitInfo secondEndpoint)
Shape
。此方法是 getVisualHighlightShape
的便捷用法,后者使用了此 TextLayout
的自然边界。
firstEndpoint
- 可视选择范围的端点secondEndpoint
- 可视选择范围的另一个端点
Shape
。public Shape getLogicalHighlightShape(int firstEndpoint, int secondEndpoint, Rectangle2D bounds)
bounds
的逻辑选择范围的 Shape
。
如果选择范围包括第一个逻辑字符,则选择范围将扩展到此 TextLayout
的起点之前的 bounds
部分。如果该范围包括最后的逻辑字符,则选择范围将扩展到此 TextLayout
的结束点之后的 bounds
部分。选择范围的高度(垂直行上的宽度)始终扩展到 bounds
。
选择范围在混向文本的行上可能是不连续的。只有逻辑范围中开始和限制之间的那些字符显示为被选中。例如,假定文本 "ABCdef" 的大写字母表示在从右到左的行上呈现从右到左的文本,逻辑选择范围是从 0 到 4 ('ABCd')。文本显示如下,粗体表示选择范围,下划线表示扩展:
defCBA选择的字符在视觉上是不连续的,该选择范围是不连续的。还请注意的是,由于该范围包括第一个逻辑字符 (A),所以该选择范围将扩展到布局开始之前的
bounds
部分,在本例中(从右到左的行)是 bounds
的右半部。
firstEndpoint
- 选择的字符范围的端点secondEndpoint
- 选择的字符范围的另一个端点。可以小于 firstEndpoint
。此范围包括 min(firstEndpoint, secondEndpoint) 处的字符,但不包括 max(firstEndpoint, secondEndpoint) 处的字符。bounds
- 选择范围扩展到的边界矩形
getVisualHighlightShape(TextHitInfo, TextHitInfo, Rectangle2D)
public Shape getLogicalHighlightShape(int firstEndpoint, int secondEndpoint)
Shape
,它扩展到了此 TextLayout
的自然边界。此方法是 getLogicalHighlightShape
的便捷用法,后者使用了此 TextLayout
的自然边界。
firstEndpoint
- 选择的字符范围的端点secondEndpoint
- 选择的字符范围的另一个端点。可以小于 firstEndpoint
。此范围包括 min(firstEndpoint, secondEndpoint) 处的字符,但不包括 max(firstEndpoint, secondEndpoint) 处的字符。
Shape
。public Shape getBlackBoxBounds(int firstEndpoint, int secondEndpoint)
firstEndpoint
- 字符范围的端点secondEndpoint
- 字符范围的另一个端点。可以小于 firstEndpoint
。
path
。public TextHitInfo hitTestChar(float x, float y, Rectangle2D bounds)
TextHitInfo
。将 TextLayout
边界之外的坐标映射到第一个逻辑字符开始边上的点,或映射到最后一个逻辑字符的结束边上的点(如果合适),而不管该字符在行中的位置。该方法只使用基线方向。
x
- 距离此 TextLayout
的原点的 x 偏移量y
- 距离此 TextLayout
的原点的 y 偏移量bounds
- TextLayout
的边界
public TextHitInfo hitTestChar(float x, float y)
TextHitInfo
。此方法是 hitTestChar
的便捷用法,后者使用了此 TextLayout
的自然边界。
x
- 距离此 TextLayout
的原点的 x 偏移量y
- 距离此 TextLayout
的原点的 y 偏移量
public int hashCode()
TextLayout
的哈希码。
Object
中的 hashCode
TextLayout
的哈希码。Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Object
是一个 TextLayout
对象,且指定的 Object
等于此 TextLayout
,则返回 true
。
Object
中的 equals
obj
- 用于测试等同性的 Object
Object
等于此 TextLayout
,则返回 true
;否则返回 false
。Object.hashCode()
,
Hashtable
public boolean equals(TextLayout rhs)
true
。如果两个布局包含具有相同顺序的相等字形向量,则这两个布局相等。
rhs
- 与此 TextLayout
进行比较的 TextLayout
TextLayout
等于此 TextLayout
,则返回 true
。public String toString()
TextLayout
的调试信息。
Object
中的 toString
TextLayout
的 String
形式的 textLine
public void draw(Graphics2D g2, float x, float y)
Graphics2D
上下文中的指定位置上呈现此 TextLayout
。布局的原点置于 x, y。呈现可能涉及此位置的 getBounds()
中的任何点。此方法不改变 g2
。
g2
- 呈现布局的 Graphics2D
上下文x, y
- 此 TextLayout
的原点坐标getBounds()
public Shape getOutline(AffineTransform tx)
TextLayout
的轮廓的 Shape
。
tx
- 应用于此 TextLayout
轮廓的可选 AffineTransform
。
TextLayout
的轮廓的 Shape
。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。