Интерфейс InputMethod

public interface InputMethod

Определяет интерфейс для метода ввода, поддерживающего сложный ввод текста. Методы ввода традиционно поддерживают ввод текста для языков, которые имеют больше символов, чем может отобразить клавиатура стандартного размера, таких как китайский, японский и корейский. Однако они также могут использоваться для поддержки фонетического ввода текста для английского языка или переупорядочения символов для тайского языка.

Подклассы InputMethod могут загружаться фреймворком метода ввода; затем их можно выбрать либо через API (InputContext.selectInputMethod), либо через пользовательский интерфейс (меню выбора метода ввода).

Since:
1.3

Методы

Модификатор и тип Метод Описание
void activate()

Активирует метод ввода для немедленной обработки ввода.

void deactivate​(boolean isTemporary)

Деактивирует метод ввода.

void dispatchEvent​(AWTEvent event)

Пересылает событие методу ввода.

void dispose()

Освобождает ресурсы, используемые этим методом ввода.

void endComposition()

Завершает любой процесс ввода, который может в данный момент происходить в этом контексте.

Object getControlObject()

Возвращает объект управления из этого метода ввода или null.

Locale getLocale()

Возвращает текущий языковой стандарт ввода.

void hideWindows()

Закрывает или скрывает все окна, открытые этой инстанцией метода ввода или ее классом.

boolean isCompositionEnabled()

Определяет, включен ли этот метод ввода.

void notifyClientWindowChange​(Rectangle bounds)

Уведомляет этот метод ввода о изменениях в расположении или состоянии окна клиента.

void reconvert()

Начинает операцию реконверсии.

void removeNotify()

Уведомляет метод ввода о том, что компонент клиента был удален из его иерархии включения или что поддержка метода ввода была отключена для компонента.

void setCharacterSubsets​(Character.Subset[] subsets)

Устанавливает подмножества набора символов Юникода, ввод которых разрешен для этого метода ввода.

void setCompositionEnabled​(boolean enable)

Включает или отключает этот метод ввода для композиции в зависимости от значения параметра enable.

void setInputMethodContext​(InputMethodContext context)

Устанавливает контекст метода ввода, который используется для пересылки событий метода ввода клиенту и для запроса информации у клиента.

boolean setLocale​(Locale locale)

Попытка установить языковой стандарт ввода.

Методы

setInputMethodContext

void setInputMethodContext(InputMethodContext context)

Устанавливает контекст метода ввода, который используется для отправки событий метода ввода клиенту и запроса информации от клиентского компонента.

Этот метод вызывается один раз сразу после создания экземпляра этого метода ввода.

Параметры:
context - контекст метода ввода для этого метода ввода
Исключения:
NullPointerException - если context равно null

setLocale

boolean setLocale(Locale locale)

Попытка установить локаль ввода. Если метод ввода поддерживает желаемую локаль, он изменяет свое поведение, чтобы поддерживать ввод для этой локали, и возвращает true. В противном случае возвращает false и не изменяет свое поведение.

Этот метод вызывается

  • методом InputContext.selectInputMethod,
  • при переключении на этот метод ввода через пользовательский интерфейс, если пользователь указал локаль или если метод getLocale ранее выбранного метода ввода возвращает ненулевое значение.
Параметры:
locale - локаль для ввода
Возвращает:
поддерживается ли указанная локаль
Исключения:
NullPointerException - если locale равно null

getLocale

Locale getLocale()

Возвращает текущую локаль ввода. Может вернуть null в особых случаях.

Этот метод вызывается

  • методом InputContext.getLocale и
  • при переключении с этого метода ввода на другой через пользовательский интерфейс.
Возвращает:
текущую локаль ввода или null

setCharacterSubsets

void setCharacterSubsets(Character.Subset[] subsets)

Устанавливает подмножества набора символов Unicode, которые этот метод ввода разрешено вводить. Может быть передан null, чтобы указать, что разрешены все символы.

Этот метод вызывается

  • сразу после создания экземпляра этого метода ввода,
  • при переключении на этот метод ввода из другого, и
  • методом InputContext.setCharacterSubsets.
Параметры:
subsets - подмножества набора символов Unicode, из которых разрешено вводить символы

setCompositionEnabled

void setCompositionEnabled(boolean enable)

Включает или выключает этот метод ввода для составления, в зависимости от значения параметра enable.

Метод ввода, включенный для составления, интерпретирует входящие события как для составления, так и для управления, тогда как выключенный метод ввода не интерпретирует события для составления. Тем не менее, события передаются методу ввода независимо от того, включен он или нет, и метод ввода, выключенный для составления, может по-прежнему интерпретировать события для управления, включая включение или выключение себя для составления.

Для методов ввода, предоставляемых хостовой операционной системой, не всегда возможно определить, поддерживается ли эта операция. Например, метод ввода может включать составление только для некоторых локалей и не делать ничего для других локалей. Для таких методов ввода возможно, что этот метод не выбросит UnsupportedOperationException, но также не повлияет на включение составления.

Этот метод вызывается

  • методом InputContext.setCompositionEnabled,
  • при переключении на этот метод ввода из другого с помощью пользовательского интерфейса или InputContext.selectInputMethod, если метод isCompositionEnabled ранее выбранного метода ввода возвращает результат без выброса исключения.
Параметры:
enable - нужно ли включить метод ввода для составления
Исключения:
UnsupportedOperationException - если этот метод ввода не поддерживает операцию включения/выключения
См. также:
isCompositionEnabled()

isCompositionEnabled

boolean isCompositionEnabled()

Определяет, включен ли этот метод ввода. Метод ввода, включенный для составления, интерпретирует входящие события как для составления, так и для управления, тогда как выключенный метод ввода не интерпретирует события для составления.

Этот метод вызывается

Возвращает:
true если этот метод ввода включен для составления; false в противном случае.
Исключения:
UnsupportedOperationException - если этот метод ввода не поддерживает проверку, включен ли он для составления
См. также:
setCompositionEnabled(boolean)

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)

Деактивирует метод ввода. Аргумент isTemporary имеет такое же значение, как и в FocusEvent.isTemporary.

Если метод ввода предоставляет свои собственные окна, только окна, относящиеся к текущему составлению (например, окно выбора поиска), должны быть закрыты в этот момент. Возможна немедленная повторная активация метода ввода для другого клиентского компонента, и закрытие и повторное открытие более постоянных окон (например, панели управления) создадут ненужный мерцание экрана. Перед активацией экземпляра другого метода ввода класса вызывается метод hideWindows() текущего метода ввода.

Этот метод вызывается

  • методом InputContext.dispatchEvent при получении клиентским компонентом события FOCUS_LOST,
  • при переключении с этого метода ввода на другой с помощью пользовательского интерфейса или InputContext.selectInputMethod,
  • перед removeNotify если текущий клиентский компонент удален.
Метод вызывается только когда метод ввода активен.
Параметры:
isTemporary - изменение фокуса временное

hideWindows

void hideWindows()

Закрывает или скрывает все окна, открытые этим экземпляром метода ввода или его классом.

Этот метод вызывается

  • перед вызовом activate экземпляра другого класса метода ввода,
  • перед вызовом dispose для этого метода ввода.
Метод вызывается только тогда, когда метод ввода неактивен.

removeNotify

void removeNotify()

Уведомляет метод ввода о том, что компонент клиента был удален из его иерархии контейнеров или что поддержка метода ввода для компонента была отключена.

Этот метод вызывается InputContext.removeNotify.

Метод вызывается только тогда, когда метод ввода неактивен.

endComposition

void endComposition()

Завершает текущую композицию ввода, если она происходит в данном контексте. В зависимости от платформы и, возможно, пользовательских предпочтений, это может привести к сохранению или удалению несохраненного текста. Любые изменения в тексте сообщаются активному компоненту с помощью события метода ввода.

Компонент редактирования текста может вызвать этот метод в различных ситуациях, например, при перемещении точки вставки внутри текста (но вне составленного текста) или при сохранении текста компонента в файл или копировании его в буфер обмена.

Этот метод вызывается

dispose

void dispose()

Освобождает ресурсы, используемые этим методом ввода. В частности, метод ввода должен освободить окна и закрыть файлы, которые больше не нужны.

Этот метод вызывается InputContext.dispose.

Метод вызывается только когда метод ввода неактивен. Ни один метод этого интерфейса не вызывается для этого экземпляра после dispose.

getControlObject

Object getControlObject()

Возвращает объект управления от этого метода ввода или null. Объект управления предоставляет методы, которые управляют поведением метода ввода или получают информацию от метода ввода. Тип объекта — это специфический для метода ввода класс. Клиенты должны сравнивать результат с известными классами объектов управления методами ввода и выполнять приведение к соответствующему классу для вызова предоставляемых методов.

Этот метод вызывается InputContext.getInputMethodControlObject.

Возвращает:
объект управления от этого метода ввода или null

© 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/spi/InputMethod.html

Spec-Zone .ru
спецификации, руководства, описания, API