Spec-Zone.ru › OpenJDK 24

Интерфейс 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)
Устанавливает подмножества набора символов Unicode, которые этот метод ввода разрешено вводить.
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 ранее выбранного метода ввода возвращает значение, отличное от null.
Параметры:
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()
Определяет, включен ли этот метод ввода. Метод ввода, включенный для составления, интерпретирует входящие события для составления и управления, а отключенный метод ввода не интерпретирует события для составления.

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

  • методом InputContext.isCompositionEnabled и
  • при переключении с этого метода ввода на другой с помощью пользовательского интерфейса или InputContext.selectInputMethod.
Возвращает:
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()
Завершает любую текущую композицию ввода в данном контексте. В зависимости от платформы и, возможно, пользовательских предпочтений, это может привести к сохранению или удалению несохраненного текста. Любые изменения в тексте передаются активному компоненту с помощью события метода ввода.

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

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

  • методом InputContext.endComposition,
  • методом InputContext.dispatchEvent при переключении на другой клиентский компонент,
  • при переключении с этого метода ввода на другой с помощью пользовательского интерфейса или InputContext.selectInputMethod.

dispose

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

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

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

getControlObject

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

Этот метод вызывается 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/im/spi/InputMethod.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API