模块  java.desktop
软件包  java.awt.font

Class TextHitInfo


  • public final class TextHitInfo
    extends Object
    TextHitInfo类表示文本模型中的字符位置,以及字符的偏差或“侧面”。 偏差要么是前导 (左边缘,左边到右边的字符),要么是尾随 (右边缘,从左到右的字符)。 实例TextHitInfo用于指定文本中的插入符号和插入位置。

    例如,考虑文本“abc”。 TextHitInfo.trailing(1)对应于文本中“b”的右侧。

    TextHitInfo主要由TextLayoutTextLayout的客户TextLayout 客户端TextLayout查询插入偏移的TextHitInfo实例,其中新文本插入到文本模型中。 如果偏差超前,则插入偏移量等于TextHitInfo的字符位置;如果偏差为尾随,则插入偏移量等于一个字符。 TextHitInfo.trailing(1)的插入偏移量为2。

    有时,构造具有与现有插入偏移相同的插入偏移的TextHitInfo是方便的,但是在相反的字符上。 getOtherHit方法使用与现有插入偏移相同的插入偏移构造新的TextHitInfo并在插入偏移的另一侧上的字符上进行命中。 在尾随(1)上调用getOtherHit将返回前导(2)。 通常,尾随(n)的getOtherHit返回前导(n + 1)和前导(n)的getOtherHit返回尾随(n-1)。

    示例

    将图形点转换为文本模型中的插入点

     TextLayout layout = ...;
     Point2D.Float hitPoint = ...;
     TextHitInfo hitInfo = layout.hitTestChar(hitPoint.x, hitPoint.y);
     int insPoint = hitInfo.getInsertionIndex();
     // insPoint is relative to layout;  may need to adjust for use
     // in a text model
     
    另请参见:
    TextLayout
    • 方法详细信息

      • getCharIndex

        public int getCharIndex()
        返回字符匹配的索引。
        结果
        命中的字符索引。
      • isLeadingEdge

        public boolean isLeadingEdge()
        如果角色的前缘被击中,则返回 true
        结果
        true如果角色的前缘被击中; 否则为false
      • getInsertionIndex

        public int getInsertionIndex()
        返回插入索引。 如果角色的前沿被击中,则这是字符索引,如果后端被击中,则大于字符索引。
        结果
        插入索引。
      • equals

        public boolean equals​(Object obj)
        返回 true如果指定 ObjectTextHitInfo ,等于这个 TextHitInfo
        重写:
        equals类别 Object
        参数
        obj - 测试相等性的 Object
        结果
        true如果指定的Object于此TextHitInfo ; 否则为false
        另请参见:
        Object.hashCode()HashMap
      • equals

        public boolean equals​(TextHitInfo hitInfo)
        返回true如果指定TextHitInfo具有相同charIndexisLeadingEdge ,因为这TextHitInfo 这与具有相同的插入偏移量不同。
        参数
        hitInfo - 指定的 TextHitInfo
        结果
        true如果指定 TextHitInfo具有相同 charIndexisLeadingEdge ,因为这 TextHitInfo
      • toString

        public String toString()
        返回 String表示仅用于调试的命中。
        重写:
        toStringObject
        结果
        String代表这个 TextHitInfo
      • leading

        public static TextHitInfo leading​(int charIndex)
        创建 TextHitInfo上的字符在指定的前沿 charIndex
        参数
        charIndex - 命中的字符的索引
        结果
        a TextHitInfo位于指定的 charIndex字符的 charIndex
      • trailing

        public static TextHitInfo trailing​(int charIndex)
        在指定的 charIndex角色的后缘创建一个 charIndex
        参数
        charIndex - 命中的字符的索引
        结果
        一个 TextHitInfo上的字符的在指定的后缘 charIndex
      • beforeOffset

        public static TextHitInfo beforeOffset​(int offset)
        在指定的偏移处创建一个 TextHitInfo ,与偏移前的字符相关联。
        参数
        offset - 与偏移前字符关联的偏移量
        结果
        a指定偏移量的 TextHitInfo
      • afterOffset

        public static TextHitInfo afterOffset​(int offset)
        在指定的偏移处创建一个 TextHitInfo ,与偏移后的字符相关联。
        参数
        offset - 与偏移后的字符关联的偏移量
        结果
        指定偏移处的 TextHitInfo
      • getOtherHit

        public TextHitInfo getOtherHit()
        在插入点的另一侧创建一个TextHitInfo TextHitInfo保持不变。
        结果
        插入点另一侧的 TextHitInfo
      • getOffsetHit

        public TextHitInfo getOffsetHit​(int delta)
        创建TextHitInfo其字符索引由偏移deltacharIndex此的TextHitInfo TextHitInfo保持不变。
        参数
        delta - 抵消此 charIndex的值
        结果
        一个 TextHitInfo ,其 charIndex被抵消 deltacharIndex如此 TextHitInfo