Класс InputContext
public class InputContext extends Object
По умолчанию для каждого экземпляра Window создается один экземпляр InputContext, и этот контекст ввода используется всеми компонентами в иерархии контейнеров окна. Однако это означает, что только одна операция ввода текста возможна в любое время в пределах окна, и что текст необходимо подтвердить при перемещении фокуса с одного текстового компонента на другой. Если это нежелательно, текстовые компоненты могут создавать свои собственные экземпляры контекста ввода.
Java-платформа поддерживает методы ввода, разработанные на языке программирования Java, используя интерфейсы в пакете java.awt.im.spi, которые могут быть доступны путем добавления их в путь класса приложения. Реализации также могут поддерживать использование собственных методов ввода платформ, на которых они работают; однако не все платформы и языки поддерживают методы ввода. Раскладки клавиатуры предоставляются хост-платформой.
Методы ввода недоступны, если (а) не установлен ни один метод ввода, написанный на языке программирования Java, и (б) реализация Java-платформы или базовая платформа не поддерживают собственные методы ввода. В этом случае контексты ввода все еще могут быть созданы и использованы; их поведение определяется отдельными методами ниже.
- С тех пор:
- 1.2
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает InputContext. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
dispatchEvent |
Отправляет событие активному методу ввода. |
void |
dispose() |
Освобождает ресурсы, используемые этим контекстом ввода. |
void |
endComposition() |
Завершает любую операцию композиции ввода, которая может в данный момент происходить в этом контексте. |
Object |
getInputMethodControlObject() |
Возвращает объект управления из текущего метода ввода или null. |
static InputContext |
getInstance() |
Возвращает новый экземпляр InputContext. |
Locale |
getLocale() |
Возвращает текущий язык текущего метода ввода или раскладки клавиатуры. |
boolean |
isCompositionEnabled() |
Определяет, включён ли текущий метод ввода для композиции. |
void |
reconvert() |
Запрашивает у текущего метода ввода повторную конвертацию текста из текущего клиентского компонента. |
void |
removeNotify |
Уведомляет контекст ввода о том, что клиентский компонент был удален из его иерархии контейнеров или что поддержка метода ввода была отключена для компонента. |
boolean |
selectInputMethod |
Пытается выбрать метод ввода или раскладку клавиатуры, поддерживающие заданный язык, и возвращает значение, указывающее, был ли такой метод ввода или раскладка клавиатуры успешно выбран. |
void |
setCharacterSubsets |
Устанавливает подмножества набора символов Unicode, для ввода которых должны разрешаться методы ввода этого контекста ввода. |
void |
setCompositionEnabled |
Включает или выключает текущий метод ввода для композиции в зависимости от значения параметра enable. |
Подробное описание конструкторов
InputContext
protected InputContext()
getInstance().Подробное описание методов
getInstance
public static InputContext getInstance()
- Возвращает:
- новый экземпляр InputContext
selectInputMethod
public boolean selectInputMethod(Locale locale)
- Если текущий выбранный метод ввода или раскладка клавиатуры поддерживает запрашиваемый регион, он остаётся выбранным.
- Если нет доступного метода ввода или раскладки клавиатуры, поддерживающего запрашиваемый регион, текущий метод ввода или раскладка клавиатуры остаются выбранными.
- Если пользователь ранее выбрал метод ввода или раскладку клавиатуры для запрашиваемого региона в пользовательском интерфейсе, то наиболее недавно выбранный такой метод ввода или раскладка клавиатуры перевыбираются.
- В противном случае метод ввода или раскладка клавиатуры, поддерживающие запрашиваемый регион, выбираются в зависимости от реализации.
Не все операционные системы предоставляют API для определения региона текущего выбранного родного метода ввода или раскладки клавиатуры и для выбора родного метода ввода или раскладки клавиатуры по региону. Для операционных систем, которые не предоставляют такого API, selectInputMethod предполагает, что родные методы ввода или раскладки клавиатуры, предоставленные операционной системой, поддерживают только системный регион по умолчанию.
Компонент редактирования текста может вызвать этот метод, например, когда пользователь меняет точку вставки, чтобы пользователь мог сразу продолжить вводить текст на языке окружающего текста.
- Параметры:
-
locale- Желаемый новый регион. - Возвращает:
- true, если метод ввода или раскладка клавиатуры, активные после этого вызова, поддерживают желаемый регион.
- Исключения:
-
NullPointerException- еслиlocaleравно null
getLocale
public Locale getLocale()
InputMethod.getLocale() текущего метода ввода возвращает null. Не все операционные системы предоставляют API для определения региона текущего выбранного родного метода ввода или раскладки клавиатуры. Для операционных систем, которые не предоставляют такого API, getLocale предполагает, что текущий регион всех родных методов ввода или раскладок клавиатуры, предоставленных операционной системой, — системный регион по умолчанию.
- Возвращает:
- текущий регион текущего метода ввода или раскладки клавиатуры
- С:
- 1.3
setCharacterSubsets
public void setCharacterSubsets(Character.Subset[] subsets)
- Параметры:
-
subsets- Подмножества набора символов Юникода, из которых можно вводить символы
setCompositionEnabled
public void setCompositionEnabled(boolean enable)
enable. Метод ввода, включённый для композиции, интерпретирует входящие события для целей как композиции, так и управления, в то время как отключённый метод ввода не интерпретирует события для композиции. Однако обратите внимание, что события передаются методу ввода независимо от того, включён ли он или нет, и что метод ввода, отключённый для композиции, всё ещё может интерпретировать события для управления, включая включение или отключение себя для композиции.
Для методов ввода, предоставляемых операционными системами хоста, не всегда возможно определить, поддерживается ли эта операция. Например, метод ввода может включать композицию только для некоторых регионов и не делать ничего для других регионов. Для таких методов ввода возможно, что этот метод не выбросит UnsupportedOperationException, но также не повлияет на включение композиции.
- Параметры:
-
enable- Включить или выключить текущий метод ввода для композиции - Исключения:
-
UnsupportedOperationException- если нет доступного текущего метода ввода или текущий метод ввода не поддерживает операцию включения/отключения - С:
- 1.3
- См. также:
isCompositionEnabled
public boolean isCompositionEnabled()
- Возвращает:
-
true, если текущий метод ввода включен для композиции;falseв противном случае - Исключения:
-
UnsupportedOperationException- если нет доступного текущего метода ввода или текущий метод ввода не поддерживает проверку, включен ли он для композиции - С:
- 1.3
- См. также:
reconvert
public void reconvert()
InputMethodRequests.getSelectedText. Другие InputMethodRequests методы должны быть готовы обрабатывать дальнейшие запросы информации от метода ввода. Преобразованный и/или сохранённый текст будет отправлен в компонент клиента в виде последовательности InputMethodEvent. Если метод ввода не может повторно преобразовать заданный текст, текст возвращается как сохранённый текст в InputMethodEvent.- Исключения:
-
UnsupportedOperationException- если нет доступного текущего метода ввода или текущий метод ввода не поддерживает операцию повторного преобразования. - С:
- 1.3
dispatchEvent
public void dispatchEvent(AWTEvent event)
- Параметры:
-
event- Событие - Исключения:
-
NullPointerException- еслиeventравно null
removeNotify
public void removeNotify(Component client)
Component.removeNotify компонента клиента. Любые ожидающие входные данные от методов ввода для этого компонента отбрасываются. Если методы ввода недоступны, то этот метод не оказывает никакого влияния.- Параметры:
-
client- Компонент клиента - Исключения:
-
NullPointerException- еслиclientравно null
endComposition
public void endComposition()
Компонент редактирования текста может вызвать этот метод в различных ситуациях, например, при перемещении пользователем точки вставки в текст (но вне составленного текста) или при сохранении текста компонента в файл или копировании его в буфер обмена.
dispose
public void dispose()
getInputMethodControlObject
public Object getInputMethodControlObject()
Если методы ввода недоступны или текущий метод ввода не предоставляет объект управления методом ввода, возвращается null.
- Возвращает:
- Объект управления текущего метода ввода или 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/InputContext.html