Spec-Zone.ru › OpenJDK 27

Класс TextHitInfo

java.lang.Object
java.awt.font.TextHitInfo
public final class TextHitInfo extends Object
Класс TextHitInfo представляет позицию символа в текстовой модели и смещение, или «сторону» символа. Смещения бывают начальными (левый край для символа, записанного слева направо) или конечными (правый край для символа, записанного слева направо). Экземпляры TextHitInfo используются для задания позиций каретки и вставки в текст.

Например, рассмотрим текст «abc». TextHitInfo.trailing(1) соответствует правой стороне символа «b» в тексте.

TextHitInfo используется преимущественно классом TextLayout и клиентами TextLayout. Клиенты TextLayout запрашивают у экземпляров TextHitInfo смещение вставки, указывающее место в текстовой модели, куда вставляется новый текст. Если смещение начальное, смещение вставки равно позиции символа в TextHitInfo, а если конечное — на единицу больше. Смещение вставки для TextHitInfo.trailing(1) равно 2.

Иногда бывает удобно создать TextHitInfo с тем же смещением вставки, что и у существующего экземпляра, но для противоположного символа. Метод getOtherHit создает новый TextHitInfo с тем же смещением вставки, что и у существующего экземпляра, но с попаданием в символ по другую сторону от смещения вставки. Вызов getOtherHit для trailing(1) вернет leading(2). В общем случае getOtherHit для trailing(n) возвращает leading(n+1), а getOtherHit для leading(n) возвращает trailing(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

Краткое описание методов

Модификатор и тип Метод Описание
static TextHitInfo afterOffset(int offset)
Создает TextHitInfo в указанном смещении, связанный с символом после этого смещения.
static TextHitInfo beforeOffset(int offset)
Создает TextHitInfo в указанном смещении, связанный с символом перед этим смещением.
boolean equals(TextHitInfo hitInfo)
Возвращает true, если указанный TextHitInfo имеет те же charIndex и isLeadingEdge, что и этот TextHitInfo.
boolean equals(Object obj)
Возвращает true, если указанный Object является TextHitInfo и равен этому TextHitInfo.
int getCharIndex()
Возвращает индекс символа, на который пришлось попадание.
int getInsertionIndex()
Возвращает индекс вставки.
TextHitInfo getOffsetHit(int delta)
Создает TextHitInfo, индекс символа которого смещен на delta относительно charIndex этого TextHitInfo.
TextHitInfo getOtherHit()
Создает TextHitInfo по другую сторону точки вставки.
int hashCode()
Возвращает хеш-код.
boolean isLeadingEdge()
Возвращает true, если попадание пришлось на начальный край символа.
static TextHitInfo leading(int charIndex)
Создает TextHitInfo на начальном крае символа с указанным charIndex.
String toString()
Возвращает String, представляющий попадание и предназначенный только для отладки.
static TextHitInfo trailing(int charIndex)
Создает попадание на конечном крае символа с указанным charIndex.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определенного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определенного времени.

Подробное описание методов

getCharIndex

public int getCharIndex()
Возвращает индекс символа, на который пришлось попадание.
Возвращает:
индекс символа, на который пришлось попадание.

isLeadingEdge

public boolean isLeadingEdge()
Возвращает true, если попадание пришлось на начальный край символа.
Возвращает:
true, если попадание пришлось на начальный край символа; в противном случае — false.

getInsertionIndex

public int getInsertionIndex()
Возвращает индекс вставки. Это индекс символа, если попадание пришлось на начальный край символа, и индекс символа плюс единица, если попадание пришлось на конечный край.
Возвращает:
индекс вставки.

hashCode

public int hashCode()
Возвращает хеш-код.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого TextHitInfo, который также является charIndex этого TextHitInfo.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object obj)
Возвращает true, если указанный Object является TextHitInfo и равен этому TextHitInfo.
Переопределяет:
equals в классе Object
Параметры:
obj — Object, для которого проверяется равенство
Возвращает:
true, если указанный Object равен этому TextHitInfo; в противном случае — false.
См. также:
  • Object.hashCode()
  • HashMap

equals

public boolean equals(TextHitInfo hitInfo)
Возвращает true, если указанный TextHitInfo имеет те же charIndex и isLeadingEdge, что и этот TextHitInfo. Это не то же самое, что иметь одинаковое смещение вставки.
Параметры:
hitInfo — указанный TextHitInfo
Возвращает:
true, если указанный TextHitInfo имеет те же charIndex и isLeadingEdge, что и этот TextHitInfo.

toString

public String toString()
Возвращает String, представляющий попадание и предназначенный только для отладки.
Переопределяет:
toString в классе Object
Возвращает:
String, представляющий этот TextHitInfo.

leading

public static TextHitInfo leading(int charIndex)
Создает TextHitInfo на начальном крае символа с указанным charIndex.
Параметры:
charIndex — индекс символа, на который пришлось попадание
Возвращает:
TextHitInfo на начальном крае символа с указанным charIndex.

trailing

public static TextHitInfo trailing(int charIndex)
Создает попадание на конечном крае символа с указанным charIndex.
Параметры:
charIndex — индекс символа, на который пришлось попадание
Возвращает:
TextHitInfo на конечном крае символа с указанным charIndex.

beforeOffset

public static TextHitInfo beforeOffset(int offset)
Создает TextHitInfo в указанном смещении, связанный с символом перед этим смещением.
Параметры:
offset — смещение, связанное с символом перед ним
Возвращает:
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, индекс символа которого смещен на delta относительно charIndex этого TextHitInfo. Этот TextHitInfo остается без изменений.
Параметры:
delta — значение, на которое нужно сместить этот charIndex
Возвращает:
TextHitInfo, чей charIndex смещен на delta относительно charIndex этого TextHitInfo.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API