Класс 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(Object obj) Возвращает |
boolean |
equals(TextHitInfo hitInfo) Возвращает |
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 от charIndex этого TextHitInfo. Этот TextHitInfo остаётся неизменным.
- Параметры:
-
delta- значение для смещения этогоcharIndex - Возвращает:
TextHitInfo, индекс символа которого смещён наdeltaотcharIndexэтого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.