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