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 TextHitInfo
afterOffset
(int offset) 创建一个在指定偏移量处的TextHitInfo
,与偏移量后的字符相关联。static TextHitInfo
beforeOffset
(int offset) 创建一个在指定偏移量处的TextHitInfo
,与偏移量前的字符相关联。boolean
equals
(TextHitInfo hitInfo) 如果指定的TextHitInfo
具有与此TextHitInfo
相同的charIndex
和isLeadingEdge
,则返回true
。boolean
如果指定的Object
是TextHitInfo
并且等于此TextHitInfo
,则返回true
。int
返回命中的字符索引。int
返回插入索引。getOffsetHit
(int delta) 创建一个TextHitInfo
,其字符索引从此TextHitInfo
的charIndex
偏移delta
。在插入点的另一侧创建一个TextHitInfo
。int
hashCode()
返回哈希码。boolean
如果命中字符的左边缘,则返回true
。static TextHitInfo
leading
(int charIndex) 在指定charIndex
处的字符的左边缘创建一个TextHitInfo
。toString()
返回表示调试用途的命中的String
。static TextHitInfo
trailing
(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
。
-