Spec-Zone.ru › OpenJDK 27

Класс InputContext

java.lang.Object
java.awt.im.InputContext
public class InputContext extends Object
Предоставляет методы для управления средствами ввода текста, такими как методы ввода и раскладки клавиатуры. Два метода работают как с методами ввода, так и с раскладками клавиатуры: selectInputMethod позволяет клиентскому компоненту выбрать метод ввода или раскладку клавиатуры по локали, а getLocale позволяет клиентскому компоненту получить локаль текущего метода ввода или раскладки клавиатуры. Остальные методы предназначены для взаимодействия с методами ввода: они позволяют клиентским компонентам управлять поведением методов ввода и передавать события от клиентского компонента методу ввода.

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

Платформа Java поддерживает методы ввода, разработанные на языке программирования Java с использованием интерфейсов из пакета java.awt.im.spi. Такие методы ввода можно сделать доступными, добавив их в путь к классам приложения. Реализации также могут поддерживать использование встроенных методов ввода платформ, на которых они выполняются; однако методы ввода доступны не на всех платформах и для всех локалей. Раскладки клавиатуры предоставляет платформа-хост.

Методы ввода недоступны, если (a) не установлен ни один метод ввода, написанный на языке программирования Java, и (b) реализация платформы Java или базовая платформа не поддерживает встроенные методы ввода. В этом случае контексты ввода по-прежнему можно создавать и использовать; их поведение описано в отдельных методах ниже.

С версии:
1.2
См. также:
  • Component.getInputContext()
  • Component.enableInputMethods(boolean)

Краткое описание конструкторов

InputContext()
Модификатор Конструктор Описание
protected
Создает объект InputContext.

Краткое описание методов

Модификатор и тип Метод Описание
void dispatchEvent(AWTEvent event)
Передает событие активному методу ввода.
void dispose()
Освобождает ресурсы, используемые этим контекстом ввода.
void endComposition()
Завершает текущую композицию ввода, которая может выполняться в этом контексте.
Object getInputMethodControlObject()
Возвращает управляющий объект текущего метода ввода или null.
static InputContext getInstance()
Возвращает новый экземпляр InputContext.
Locale getLocale()
Возвращает текущую локаль текущего метода ввода или раскладки клавиатуры.
boolean isCompositionEnabled()
Определяет, включен ли текущий метод ввода для композиции.
void reconvert()
Запрашивает у текущего метода ввода повторное преобразование текста из текущего клиентского компонента.
void removeNotify(Component client)
Уведомляет контекст ввода об удалении клиентского компонента из иерархии контейнеров или об отключении поддержки методов ввода для этого компонента.
boolean selectInputMethod(Locale locale)
Пытается выбрать метод ввода или раскладку клавиатуры, поддерживающие указанную локаль, и возвращает значение, указывающее, удалось ли выполнить такой выбор.
void setCharacterSubsets(Character.Subset[] subsets)
Задает подмножества набора символов Unicode, которые методы ввода этого контекста ввода могут использовать для ввода.
void setCompositionEnabled(boolean enable)
Включает или отключает текущий метод ввода для композиции в зависимости от значения параметра enable.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

InputContext

protected InputContext()
Создает объект InputContext. Этот метод является защищенным, поэтому клиенты не могут создавать экземпляры InputContext напрямую. Контексты ввода получают с помощью вызова getInstance().

Подробное описание методов

getInstance

public static InputContext getInstance()
Возвращает новый экземпляр InputContext.
Возвращает:
новый экземпляр InputContext

selectInputMethod

public boolean selectInputMethod(Locale locale)
Пытается выбрать метод ввода или раскладку клавиатуры, поддерживающие указанную локаль, и возвращает значение, указывающее, удалось ли выполнить такой выбор. Пока метод ввода не будет выбран, выполняются следующие шаги:
  • Если текущий выбранный метод ввода или раскладка клавиатуры поддерживает запрошенную локаль, он остается выбранным.
  • Если нет доступного метода ввода или раскладки клавиатуры, поддерживающих запрошенную локаль, текущий метод ввода или раскладка клавиатуры остается выбранным.
  • Если пользователь ранее выбрал метод ввода или раскладку клавиатуры для запрошенной локали в пользовательском интерфейсе, повторно выбирается последний из таких методов ввода или раскладок клавиатуры.
  • В противном случае метод ввода или раскладка клавиатуры, поддерживающие запрошенную локаль, выбираются способом, зависящим от реализации.
Перед переключением с метода ввода весь незавершенный текст фиксируется. Если метод ввода или раскладка клавиатуры, поддерживающие запрошенную локаль, недоступны, возвращается false.

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

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

Параметры:
locale — желаемая новая локаль.
Возвращает:
true, если метод ввода или раскладка клавиатуры, активные после этого вызова, поддерживают желаемую локаль.
Исключения:
NullPointerException — если locale равно null

getLocale

public Locale getLocale()
Возвращает текущую локаль текущего метода ввода или раскладки клавиатуры. Возвращает null, если у контекста ввода нет текущего метода ввода или раскладки клавиатуры либо если метод InputMethod.getLocale() текущего метода ввода возвращает null.

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

Возвращает:
текущую локаль текущего метода ввода или раскладки клавиатуры
С версии:
1.3

setCharacterSubsets

public void setCharacterSubsets(Character.Subset[] subsets)
Задает подмножества набора символов Unicode, которые методы ввода этого контекста ввода могут использовать для ввода. Для указания того, что разрешены все символы, можно передать null. Начальное значение — null. Настройка применяется как к текущему методу ввода, так и к методам ввода, выбранным после этого вызова. Однако приложения не могут рассчитывать на желаемый результат вызова этого метода, поскольку эту настройку нельзя передать всем методам ввода хоста; приложениям по-прежнему необходимо выполнять собственную проверку символов. Если методы ввода недоступны, этот метод не оказывает влияния.
Параметры:
subsets — подмножества набора символов Unicode, из которых могут вводиться символы

setCompositionEnabled

public void setCompositionEnabled(boolean enable)
Включает или отключает текущий метод ввода для композиции в зависимости от значения параметра enable.

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

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

Параметры:
enable — следует ли включить текущий метод ввода для композиции
Исключения:
UnsupportedOperationException — если текущий метод ввода недоступен или не поддерживает операцию включения/отключения
С версии:
1.3
См. также:
  • isCompositionEnabled()

isCompositionEnabled

public boolean isCompositionEnabled()
Определяет, включен ли текущий метод ввода для композиции. Метод ввода, включенный для композиции, интерпретирует поступающие события как для композиции, так и для управления, тогда как отключенный метод ввода не интерпретирует события для композиции.
Возвращает:
true, если текущий метод ввода включен для композиции; в противном случае — false
Исключения:
UnsupportedOperationException — если текущий метод ввода недоступен или не поддерживает проверку того, включен ли он для композиции
С версии:
1.3
См. также:
  • setCompositionEnabled(boolean)

reconvert

public void reconvert()
Запрашивает у текущего метода ввода повторное преобразование текста из текущего клиентского компонента. Метод ввода получает текст для повторного преобразования из клиентского компонента с помощью метода InputMethodRequests.getSelectedText. Остальные методы InputMethodRequests должны быть готовы обрабатывать последующие запросы информации от метода ввода. Составленный и/или зафиксированный текст будет отправлен клиентскому компоненту в виде последовательности объектов InputMethodEvent. Если метод ввода не может повторно преобразовать данный текст, он возвращается как зафиксированный текст в объекте InputMethodEvent.
Исключения:
UnsupportedOperationException — если текущий метод ввода недоступен или не поддерживает операцию повторного преобразования.
С версии:
1.3

dispatchEvent

public void dispatchEvent(AWTEvent event)
Передает событие активному методу ввода. Вызывается AWT. Если методы ввода недоступны, событие никогда не будет обработано.
Параметры:
event — событие
Исключения:
NullPointerException — если event равно null

removeNotify

public void removeNotify(Component client)
Уведомляет контекст ввода об удалении клиентского компонента из иерархии контейнеров или об отключении поддержки методов ввода для этого компонента. Обычно этот метод вызывается из метода Component.removeNotify клиентского компонента. Потенциально ожидающий ввод от методов ввода для этого компонента отбрасывается. Если методы ввода недоступны, этот метод не оказывает влияния.
Параметры:
client — клиентский компонент
Исключения:
NullPointerException — если client равно null

endComposition

public void endComposition()
Завершает текущую композицию ввода, которая может выполняться в этом контексте. В зависимости от платформы и, возможно, пользовательских настроек незавершенный текст может быть зафиксирован или удален. Обо всех изменениях текста активный компонент уведомляется с помощью события метода ввода. Если методы ввода недоступны, этот метод не оказывает влияния.

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

dispose

public void dispose()
Освобождает ресурсы, используемые этим контекстом ввода. Вызывается AWT для контекста ввода по умолчанию каждого окна Window. Если методы ввода недоступны, этот метод не оказывает влияния.

getInputMethodControlObject

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

Если методы ввода недоступны или текущий метод ввода не предоставляет управляющий объект метода ввода, возвращается null.

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где представлены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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