Интерфейс InputMethod
public interface InputMethod
Подклассы InputMethod могут загружаться фреймворком для методов ввода; затем их можно выбрать либо через API (InputContext.selectInputMethod), либо через пользовательский интерфейс (меню выбора метода ввода).
- Since:
- 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 |
Устанавливает подмножества набора символов Юникода, ввод которых разрешен для этого метода ввода. |
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- подмножества набора символов Юникода, из которых можно вводить символы
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, если текущий клиентский компонент удаляется.
- Parameters:
-
isTemporary- является ли изменение фокуса временным
hideWindows
void 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.
- Returns:
- объект управления от этого метода ввода или null
© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/im/spi/InputMethod.html