Класс 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) |
Создаёт |
static TextHitInfo |
beforeOffset(int offset) |
Создаёт |
boolean |
equals(TextHitInfo hitInfo) |
Возвращает |
boolean |
equals(Object obj) |
Возвращает |
int |
getCharIndex() |
Возвращает индекс символа, на который был совершен удар. |
int |
getInsertionIndex() |
Возвращает индекс вставки. |
TextHitInfo |
getOffsetHit(int delta) |
Создаёт |
TextHitInfo |
getOtherHit() |
Создаёт |
int |
hashCode() |
Возвращает хэш-код. |
boolean |
isLeadingEdge() |
Возвращает |
static TextHitInfo |
leading(int charIndex) |
Создаёт |
String |
toString() |
Возвращает |
static TextHitInfo |
trailing(int charIndex) |
Создаёт удар по замыкающему краю символа в указанном |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Методы
getCharIndex
public int getCharIndex()
Возвращает индекс символа, на который был совершен удар.
- Возвращает:
- индекс символа, на который был совершен удар.
isLeadingEdge
public boolean isLeadingEdge()
Возвращает true, если был затронут ведущий край символа.
- Возвращает:
-
trueесли был затронут ведущий край символа;falseв противном случае.
getInsertionIndex
public int getInsertionIndex()
Возвращает индекс вставки. Это индекс символа, если был затронут ведущий край символа, и на единицу больше индекса символа, если был затронут замыкающий край.
- Возвращает:
- индекс вставки.
hashCode
public int hashCode()
Возвращает хэш-код.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- хэш-код этого
TextHitInfo, который также является хэш-кодом этогоTextHitInfo. - См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.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, представляющий удар, только для отладки.
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 от индекса символа этого TextHitInfo.
- Параметры:
-
delta- значение смещения этогоcharIndex - Возвращает:
TextHitInfoс индексом символа, смещённым наdeltaот индекса символа этогоTextHitInfo.
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/font/TextHitInfo.html