Класс InputContext
public class InputContext extends Object
По умолчанию для каждого экземпляра Window создается один экземпляр InputContext, общий для всех компонентов в иерархии контейнеров этого окна. Однако это означает, что в пределах окна одновременно может выполняться только одна операция ввода текста, а при переводе фокуса с одного текстового компонента на другой текст необходимо зафиксировать. Если это нежелательно, текстовые компоненты могут создавать собственные экземпляры контекста ввода.
Платформа Java поддерживает методы ввода, разработанные на языке программирования Java с использованием интерфейсов пакета java.awt.im.spi, которые можно сделать доступными, добавив их в путь к классам приложения. Реализации также могут поддерживать использование встроенных методов ввода платформ, на которых они работают; однако не все платформы и локали предоставляют методы ввода. Раскладки клавиатуры предоставляются хост-платформой.
Методы ввода недоступны, если (a) не установлен ни один метод ввода, написанный на языке программирования Java, и (b) реализация платформы 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— подмножества набора символов Unicode, из которых могут вводиться символы
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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/im/InputContext.html