Класс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static TextHitInfo |
afterOffset |
Создает TextHitInfo в указанном смещении, связанном с символом после смещения. |
static TextHitInfo |
beforeOffset |
Создает TextHitInfo в указанном смещении, связанном с символом перед смещением. |
boolean |
equals |
Возвращает true, если указанный TextHitInfo имеет то же самое charIndex и isLeadingEdge что и этот TextHitInfo. |
boolean |
equals |
Возвращает true если указанный Object является TextHitInfo и равен этому TextHitInfo. |
int |
getCharIndex() |
Возвращает индекс символа. |
int |
getInsertionIndex() |
Возвращает индекс вставки. |
TextHitInfo |
getOffsetHit |
Создает TextHitInfo с индексом символа, смещенным на delta от charIndex этого TextHitInfo. |
TextHitInfo |
getOtherHit() |
Создает TextHitInfo на другой стороне точки вставки. |
int |
hashCode() |
Возвращает хэш-код. |
boolean |
isLeadingEdge() |
Возвращает true если был достигнут ведущий край символа. |
static TextHitInfo |
leading |
Создает TextHitInfo на ведущем краю символа в указанном charIndex. |
String |
toString() |
Возвращает строковое представление попадания для отладки. |
static TextHitInfo |
trailing |
Создает попадание на замыкающем краю символа в указанном charIndex. |
Подробное описание методов
getCharIndex
public int getCharIndex()
- Возвращает:
- индекс символа.
isLeadingEdge
public boolean isLeadingEdge()
true если был достигнут ведущий край символа.- Возвращает:
-
trueесли был достигнут ведущий край символа;falseв противном случае.
getInsertionIndex
public int getInsertionIndex()
- Возвращает:
- индекс вставки.
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- хэш-код этого
TextHitInfo, который также является хэш-кодом этогоTextHitInfo. - См. также:
equals
public boolean equals(Object obj)
true если указанный Object является TextHitInfo и равен этому TextHitInfo.- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- тестируемый на равенствоObject - Возвращает:
-
trueесли указанныйObjectравен этомуTextHitInfo;falseв противном случае. - См. также:
equals
public boolean equals(TextHitInfo hitInfo)
true если указанный TextHitInfo имеет то же самое charIndex и isLeadingEdge что и этот TextHitInfo. Это не то же самое, что иметь одинаковое смещение вставки.- Параметры:
-
hitInfo- указанныйTextHitInfo - Возвращает:
-
trueесли указанныйTextHitInfoимеет то же самоеcharIndexиisLeadingEdgeчто и этотTextHitInfo.
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этого
TextHitInfo.
leading
public static TextHitInfo leading(int charIndex)
TextHitInfo на ведущем краю символа в указанном charIndex.- Параметры:
-
charIndex- индекс символа - Возвращает:
TextHitInfoна ведущем краю символа в указанномcharIndex.
trailing
public static TextHitInfo trailing(int charIndex)
charIndex.- Параметры:
-
charIndex- индекс символа - Возвращает:
- попадание на замыкающем краю символа в указанном
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.
© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/java/awt/font/TextHitInfo.html