Интерфейс InputMethod
public interface InputMethod
Подклассы InputMethod могут загружаться инфраструктурой методов ввода; после этого их можно выбрать через API (InputContext.selectInputMethod) или пользовательский интерфейс (меню выбора метода ввода).
- Начиная с:
- 1.3
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
activate() |
Активирует метод ввода для немедленной обработки ввода. |
void |
deactivate |
Деактивирует метод ввода. |
void |
dispatchEvent |
Передает событие методу ввода. |
void |
dispose() |
Освобождает ресурсы, используемые этим методом ввода. |
void |
endComposition() |
Завершает текущую композицию ввода в этом контексте. |
Object |
getControlObject() |
Возвращает управляющий объект этого метода ввода или null. |
Locale |
getLocale() |
Возвращает текущую языковую локаль ввода. |
void |
hideWindows() |
Закрывает или скрывает все окна, открытые этим экземпляром или классом метода ввода. |
boolean |
isCompositionEnabled() |
Определяет, включен ли этот метод ввода. |
void |
notifyClientWindowChange |
Уведомляет этот метод ввода об изменениях положения или состояния окна клиентского приложения. |
void |
reconvert() |
Запускает операцию повторного преобразования. |
void |
removeNotify() |
Уведомляет метод ввода о том, что клиентский компонент удален из иерархии содержащих его компонентов или что для компонента отключена поддержка методов ввода. |
void |
setCharacterSubsets |
Задает подмножества набора символов Unicode, которые этому методу ввода разрешено вводить. |
void |
setCompositionEnabled |
Включает или отключает этот метод ввода для композиции в зависимости от значения параметра enable. |
void |
setInputMethodContext |
Задает контекст метода ввода, используемый для передачи событий метода ввода клиентскому компоненту и запроса информации у него. |
boolean |
setLocale |
Пытается задать языковую локаль ввода. |
Подробное описание методов
setInputMethodContext
void setInputMethodContext(InputMethodContext context)
Этот метод вызывается один раз сразу после создания экземпляра этого метода ввода.
- Параметры:
-
context— контекст метода ввода для этого метода ввода - Выбрасывает:
-
NullPointerException— еслиcontextимеет значение null
setLocale
boolean setLocale(Locale locale)
Этот метод вызывается
- методом
InputContext.selectInputMethod, - при переключении на этот метод ввода через пользовательский интерфейс, если пользователь указал локаль или если метод
getLocaleранее выбранного метода ввода возвращает ненулевое значение.
- Параметры:
-
locale— локаль для ввода - Возвращает:
- поддерживается ли указанная локаль
- Выбрасывает:
-
NullPointerException— еслиlocaleимеет значение null
getLocale
Locale getLocale()
Этот метод вызывается
- методом
InputContext.getLocaleи - при переключении с этого метода ввода на другой через пользовательский интерфейс.
- Возвращает:
- текущую языковую локаль ввода или null
setCharacterSubsets
void setCharacterSubsets(Character.Subset[] subsets)
Этот метод вызывается
- сразу после создания экземпляра этого метода ввода,
- при переключении на этот метод ввода с другого и
- методом
InputContext.setCharacterSubsets.
- Параметры:
-
subsets— подмножества набора символов Unicode, из которых можно вводить символы
setCompositionEnabled
void setCompositionEnabled(boolean enable)
enable. Метод ввода, включенный для композиции, интерпретирует поступающие события как для композиции, так и для управления, тогда как отключенный метод ввода не интерпретирует события для композиции. Однако обратите внимание, что события передаются методу ввода независимо от того, включен он или нет, и что метод ввода, отключенный для композиции, все еще может интерпретировать события для управления, в том числе для включения или отключения композиции.
Для методов ввода, предоставляемых операционными системами, не всегда можно определить, поддерживается ли эта операция. Например, метод ввода может включать композицию только для некоторых локалей и ничего не делать для других. Поэтому такой метод может не выбрасывать UnsupportedOperationException, но при этом не влиять на то, включена ли композиция.
Этот метод вызывается
- методом
InputContext.setCompositionEnabled, - при переключении на этот метод ввода с другого через пользовательский интерфейс или
InputContext.selectInputMethod, если методisCompositionEnabledранее выбранного метода ввода завершается без исключения.
- Параметры:
-
enable— следует ли включить метод ввода для композиции - Выбрасывает:
-
UnsupportedOperationException— если этот метод ввода не поддерживает операцию включения или отключения - См. также:
isCompositionEnabled
boolean isCompositionEnabled()
Этот метод вызывается
- методом
InputContext.isCompositionEnabledи - при переключении с этого метода ввода на другой через пользовательский интерфейс или
InputContext.selectInputMethod.
- Возвращает:
-
true, если этот метод ввода включен для композиции; в противном случае —false. - Выбрасывает:
-
UnsupportedOperationException— если этот метод ввода не поддерживает проверку того, включен ли он для композиции - См. также:
reconvert
void reconvert()
InputMethodRequests.getSelectedText. Для запроса дополнительной информации, необходимой для операции повторного преобразования, он может использовать другие методы InputMethodRequests. Составленный и зафиксированный текст, полученный в результате операции, отправляется клиентскому компоненту в виде последовательности InputMethodEvent. Если указанный текст невозможно преобразовать повторно, тот же текст следует отправить клиентскому компоненту как зафиксированный текст. Этот метод вызывается методом InputContext.reconvert.
- Выбрасывает:
-
UnsupportedOperationException— если метод ввода не поддерживает операцию повторного преобразования.
dispatchEvent
void dispatchEvent(AWTEvent event)
consume; в результате событие не передается методам обработки событий компонента или его обработчикам событий. Передаются события, являющиеся экземплярами InputEvent или его подклассов. Сюда входят экземпляры классов AWT KeyEvent и MouseEvent.
Этот метод вызывается методом InputContext.dispatchEvent.
- Параметры:
-
event— событие, передаваемое методу ввода - Выбрасывает:
-
NullPointerException— еслиeventимеет значение null
notifyClientWindowChange
void notifyClientWindowChange(Rectangle bounds)
InputMethodContext.enableClientWindowNotification). Вызовы этого метода временно приостанавливаются при вызове метода removeNotify контекста ввода и возобновляются, когда метод ввода активируется для нового клиентского компонента. Метод вызывается в следующих случаях: - при изменении положения, размера или видимости окна, содержащего текущий клиентский компонент, при сворачивании окна или его закрытии;
- из
enableClientWindowNotification(inputMethod, true), если текущий клиентский компонент существует; - при первой активации метода ввода после вызова им
enableClientWindowNotification(inputMethod, true), если во время вызова текущий клиентский компонент был недоступен; - при активации метода ввода для нового клиентского компонента после вызова метода removeNotify контекста ввода.
- Параметры:
-
bounds—boundsокна клиентского приложения на экране; или null, если окно клиентского приложения свернуто или невидимо
activate
void activate()
Если метод ввода предоставляет собственные окна, на этом этапе он должен убедиться, что все необходимые окна открыты и видимы.
Этот метод вызывается
- методом
InputContext.dispatchEvent, когда клиентский компонент получает событие FOCUS_GAINED, - при переключении на этот метод ввода с другого через пользовательский интерфейс или
InputContext.selectInputMethod.
deactivate
void deactivate(boolean isTemporary)
FocusEvent.isTemporary. Если метод ввода предоставляет собственные окна, на этом этапе следует закрыть только окна, относящиеся к текущей композиции (например, окно выбора варианта). Метод ввода может сразу же снова активироваться для другого клиентского компонента; закрытие и повторное открытие более постоянных окон (например, панели управления) приведет к ненужному мерцанию экрана. Перед активацией экземпляра другого класса метода ввода для текущего метода ввода вызывается hideWindows().
Этот метод вызывается
- методом
InputContext.dispatchEvent, когда клиентский компонент получает событие FOCUS_LOST, - при переключении с этого метода ввода на другой через пользовательский интерфейс или
InputContext.selectInputMethod, - перед вызовом
removeNotify, если текущий клиентский компонент удаляется.
- Параметры:
-
isTemporary— является ли смена фокуса временной
hideWindows
removeNotify
void removeNotify()
Этот метод вызывается методом InputContext.removeNotify.
Метод вызывается только тогда, когда метод ввода неактивен.
endComposition
void endComposition()
Компонент редактирования текста может вызывать этот метод в различных ситуациях, например, когда пользователь перемещает точку вставки внутри текста (но за пределы составляемого текста) или когда текст компонента сохраняется в файл либо копируется в буфер обмена.
Этот метод вызывается
- методом
InputContext.endComposition, - методом
InputContext.dispatchEventпри переключении на другой клиентский компонент, - при переключении с этого метода ввода на другой через пользовательский интерфейс или
InputContext.selectInputMethod.
dispose
void dispose()
Этот метод вызывается методом InputContext.dispose.
Метод вызывается только тогда, когда метод ввода неактивен. После вызова dispose для этого экземпляра не вызывается ни один метод этого интерфейса.
getControlObject
Object getControlObject()
Этот метод вызывается методом InputContext.getInputMethodControlObject.
- Возвращает:
- управляющий объект этого метода ввода или null
© 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/spi/InputMethod.html