java.lang.Object
java.awt.font.TextHitInfo
TextHitInfo类表示文本模型中的字符位置,以及字符的“偏移”或“边缘”。偏移可以是leading(对于从左到右的字符来说是左边缘)或trailing(对于从左到右的字符来说是右边缘)。TextHitInfo的实例用于指定文本中的插入符和插入位置。
例如,考虑文本“abc”。TextHitInfo.trailing(1)对应于文本中'b'的右侧。
TextHitInfo主要由TextLayout和TextLayout的客户端使用。 TextLayout的客户端查询TextHitInfo实例以获取插入偏移量,在该偏移量处将新文本插入文本模型。如果偏移是leading,则插入偏移量等于TextHitInfo中的字符位置,如果偏移是trailing,则插入偏移量比字符位置多一个字符。TextHitInfo.trailing(1)的插入偏移量为2。
有时,方便构造一个具有与现有插入偏移量相同的TextHitInfo,但在相反字符上。 getOtherHit方法构造一个新的TextHitInfo,其插入偏移量与现有插入偏移量相同,但命中插入偏移量另一侧的字符。对trailing(1)调用getOtherHit将返回leading(2)。通常,对于trailing(n),getOtherHit返回leading(n+1),对于leading(n),getOtherHit返回trailing(n-1)。
示例:
将图形点转换为文本模型中的插入点
TextLayout layout = ...; Point2D.Float hitPoint = ...; TextHitInfo hitInfo = layout.hitTestChar(hitPoint.x, hitPoint.y); int insPoint = hitInfo.getInsertionIndex(); // insPoint相对于layout;可能需要调整以在文本模型中使用
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionstatic TextHitInfoafterOffset(int offset) 创建一个在指定偏移量处的TextHitInfo,与偏移量后的字符相关联。static TextHitInfobeforeOffset(int offset) 创建一个在指定偏移量处的TextHitInfo,与偏移量前的字符相关联。booleanequals(TextHitInfo hitInfo) 如果指定的TextHitInfo具有与此TextHitInfo相同的charIndex和isLeadingEdge,则返回true。boolean如果指定的Object是TextHitInfo并且等于此TextHitInfo,则返回true。int返回命中的字符索引。int返回插入索引。getOffsetHit(int delta) 创建一个TextHitInfo,其字符索引从此TextHitInfo的charIndex偏移delta。在插入点的另一侧创建一个TextHitInfo。inthashCode()返回哈希码。boolean如果命中字符的左边缘,则返回true。static TextHitInfoleading(int charIndex) 在指定charIndex处的字符的左边缘创建一个TextHitInfo。toString()返回表示调试用途的命中的String。static TextHitInfotrailing(int charIndex) 在指定charIndex处的字符的右边缘创建一个命中。
-
Method Details
-
getCharIndex
public int getCharIndex()返回命中的字符索引。- 返回:
- 命中的字符索引。
-
isLeadingEdge
public boolean isLeadingEdge()如果命中字符的左边缘,则返回true。- 返回:
-
如果命中字符的左边缘,则返回
true;否则返回false。
-
getInsertionIndex
public int getInsertionIndex()返回插入索引。如果命中字符的左边缘,则为字符索引,如果命中字符的右边缘,则比字符索引大1。- 返回:
- 插入索引。
-
hashCode
public int hashCode()返回哈希码。 -
equals
如果指定的Object是TextHitInfo并且等于此TextHitInfo,则返回true。 -
equals
如果指定的TextHitInfo具有与此TextHitInfo相同的charIndex和isLeadingEdge,则返回true。这与具有相同插入偏移量不同。- 参数:
-
hitInfo- 指定的TextHitInfo - 返回:
-
如果指定的
TextHitInfo具有与此TextHitInfo相同的charIndex和isLeadingEdge,则返回true。
-
toString
返回表示调试用途的命中的String。 -
leading
在指定charIndex处的字符的左边缘创建一个TextHitInfo。- 参数:
-
charIndex- 命中的字符的索引 - 返回:
-
在指定
charIndex处的字符的左边缘创建一个TextHitInfo。
-
trailing
在指定charIndex处的字符的右边缘创建一个命中。- 参数:
-
charIndex- 命中的字符的索引 - 返回:
-
在指定
charIndex处的字符的右边缘创建一个TextHitInfo。
-
beforeOffset
创建一个在指定偏移量处的TextHitInfo,与偏移量前的字符相关联。- 参数:
-
offset- 与偏移量前的字符相关联的偏移量 - 返回:
-
在指定偏移量处的
TextHitInfo。
-
afterOffset
创建一个在指定偏移量处的TextHitInfo,与偏移量后的字符相关联。- 参数:
-
offset- 与偏移量后的字符相关联的偏移量 - 返回:
-
在指定偏移量处的
TextHitInfo。
-
getOtherHit
创建一个在插入点的另一侧的TextHitInfo。此TextHitInfo保持不变。- 返回:
-
在插入点的另一侧的
TextHitInfo。
-
getOffsetHit
创建一个TextHitInfo,其字符索引从此TextHitInfo的charIndex偏移delta。此TextHitInfo保持不变。- 参数:
-
delta- 要偏移此charIndex的值 - 返回:
-
一个
TextHitInfo,其charIndex从此TextHitInfo的charIndex偏移delta。
-