Класс InputContext
public class InputContext extends Object
По умолчанию один экземпляр InputContext создается на каждый экземпляр окна, и этот контекст ввода используется всеми компонентами в иерархии контейнеров окна. Однако это означает, что только одна операция ввода текста возможна в любое время в окне, и что текст необходимо подтвердить при перемещении фокуса с одного текстового компонента на другой. Если этого не требуется, текстовые компоненты могут создавать свои собственные экземпляры контекста ввода.
Java платформа поддерживает методы ввода, разработанные на языке программирования Java, используя интерфейсы в пакете java.awt.im.spi, которые можно сделать доступными, добавив их в путь класса приложения. Реализации также могут поддерживать использование собственных методов ввода платформ, на которых они работают; однако не все платформы и языковые среды предоставляют методы ввода. Раскладки клавиатуры предоставляются хост-платформой.
Методы ввода недоступны, если (а) не установлен ни один метод ввода, написанный на языке программирования Java, и (б) реализация Java платформы или основная платформа не поддерживают собственные методы ввода. В этом случае контексты ввода все еще могут быть созданы и использованы; их поведение определено отдельными методами ниже.
- Since:
- 1.2
- See Also:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
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, 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/InputContext.html