Интерфейс InputMethodRequests
- Все известные подинтерфейсы:
InputMethodContext
public interface InputMethodRequests
Компонент редактирования текста также должен предоставить прослушиватель событий метода ввода.
Интерфейс предназначен для поддержки одного из двух пользовательских интерфейсов ввода:
- ввод на месте, при котором составляемый текст отображается как часть текста компонента.
- ввод ниже места ввода, при котором составляемый текст отображается в отдельном окне композиции непосредственно под позицией вставки, куда текст будет вставлен после фиксации. Обратите внимание: если в тексте компонента выделен текст, то после фиксации он будет заменён зафиксированным текстом; поэтому он не считается частью контекста, в который вводится текст.
- Начиная с версии:
- 1.2
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
AttributedCharacterIterator |
cancelLatestCommittedText |
Получает последний зафиксированный текст из компонента редактирования текста и удаляет его из текста компонента. |
AttributedCharacterIterator |
getCommittedText |
Получает итератор, предоставляющий доступ ко всему тексту и атрибутам, содержащимся в компоненте редактирования текста, за исключением незафиксированного текста. |
int |
getCommittedTextLength() |
Получает длину всего текста, содержащегося в компоненте редактирования текста, за исключением незафиксированного (составляемого) текста. |
int |
getInsertPositionOffset() |
Получает смещение позиции вставки в зафиксированном тексте, содержащемся в компоненте редактирования текста. |
TextHitInfo |
getLocationOffset |
Получает смещение в составляемом тексте для указанных абсолютных координат x и y на экране. |
AttributedCharacterIterator |
getSelectedText |
Получает текущий выделенный текст из компонента редактирования текста. |
Rectangle |
getTextLocation |
Получает местоположение указанного смещения в текущем составляемом тексте или выделения в зафиксированном тексте. |
Подробное описание методов
getTextLocation
Rectangle getTextLocation(TextHitInfo offset)
Если компонент содержит составляемый текст (поскольку последнее отправленное ему событие InputMethodEvent содержало составляемый текст), смещение отсчитывается относительно составляемого текста: смещение 0 указывает на первый символ составляемого текста. Возвращаемое местоположение должно соответствовать этому символу.
Если компонент не содержит составляемого текста, смещение следует игнорировать, а возвращаемое местоположение должно указывать на начало (в направлении строки) выделения в последней строке, содержащей выделенный текст. Например, для горизонтального текста с направлением слева направо (например, английского) возвращается местоположение слева от самого левого символа в последней строке, содержащей выделенный текст. Для вертикального текста с направлением сверху вниз и строками, идущими справа налево, возвращается местоположение над самой левой строкой, содержащей выделенный текст.
Местоположение представлено кареткой нулевой толщины: она имеет нулевую ширину, если текст отображается горизонтально, и нулевую высоту, если текст отображается вертикально. Другие ориентации текста необходимо преобразовать в горизонтальную или вертикальную ориентацию. Прямоугольник использует абсолютные координаты экрана.
- Параметры:
-
offset— смещение в составляемом тексте, если такой текст есть; в противном случае null - Возвращает:
- прямоугольник, представляющий местоположение смещения на экране
getLocationOffset
TextHitInfo getLocationOffset(int x, int y)
Возвращает null, если местоположение находится за пределами области, занятой составляемым текстом.
- Параметры:
-
x— абсолютная координата x на экране -
y— абсолютная координата y на экране - Возвращает:
- информацию о попадании в текст, описывающую смещение в составляемом тексте.
getInsertPositionOffset
int getInsertPositionOffset()
- Возвращает:
- смещение позиции вставки
getCommittedText
AttributedCharacterIterator getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes)
Метод ввода может предоставить список интересующих его атрибутов. В этом случае сведения об остальных атрибутах, доступные реализации, предоставлять через итератор не требуется. Если список равен null, следует предоставить сведения обо всех доступных атрибутах.
- Параметры:
-
beginIndex— индекс первого символа -
endIndex— индекс символа, следующего за последним символом -
attributes— список атрибутов, интересующих метод ввода - Возвращает:
- итератор, предоставляющий доступ к тексту и его атрибутам
getCommittedTextLength
int getCommittedTextLength()
- Возвращает:
- длину текста без учёта незафиксированного текста
cancelLatestCommittedText
AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes)
Как правило, эту функцию следует поддерживать только сразу после фиксации текста, а не после выполнения пользователем других операций с текстом. Если функция не поддерживается, возвращает null.
Метод ввода может предоставить список интересующих его атрибутов. В этом случае сведения об остальных атрибутах, доступные реализации, предоставлять через итератор не требуется. Если список равен null, следует предоставить сведения обо всех доступных атрибутах.
- Параметры:
-
attributes— список атрибутов, интересующих метод ввода - Возвращает:
- последний зафиксированный текст или null, если функция «Отменить фиксацию» не поддерживается
getSelectedText
AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes)
Метод ввода может предоставить список интересующих его атрибутов. В этом случае сведения об остальных атрибутах, доступные реализации, предоставлять через итератор не требуется. Если список равен null, следует предоставить сведения обо всех доступных атрибутах.
- Параметры:
-
attributes— список атрибутов, интересующих метод ввода - Возвращает:
- текущий выделенный текст
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/im/InputMethodRequests.html