Spec-Zone.ru › OpenJDK 21

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

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

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

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, если текущий клиентский компонент удаляется.
Метод вызывается только при активном методе ввода.
Parameters:
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.

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

Spec-Zone.ru

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