Класс InputContext
- java.lang.Object
-
- java.awt.im.InputContext
public class InputContext extends Object
Предоставляет методы для управления средствами ввода текста, такими как методы ввода и раскладки клавиатуры. Два метода обрабатывают как методы ввода, так и раскладки клавиатуры: selectInputMethod позволяет клиентскому компоненту выбрать метод ввода или раскладку клавиатуры по локальному языку, getLocale позволяет клиентскому компоненту получить локальный язык текущего метода ввода или раскладки клавиатуры. Другие методы более конкретно поддерживают взаимодействие с методами ввода: они позволяют клиентским компонентам управлять поведением методов ввода и передавать события от клиентского компонента методу ввода.
По умолчанию для каждого экземпляра окна создается один экземпляр InputContext, и этот контекст ввода используется всеми компонентами в иерархии контейнеров окна. Однако это означает, что только одна операция ввода текста возможна в любое время в пределах окна, и что текст необходимо подтвердить при перемещении фокуса с одного текстового компонента на другой. Если это нежелательно, текстовые компоненты могут создавать свои собственные экземпляры контекста ввода.
Java Platform поддерживает методы ввода, разработанные на языке программирования Java, используя интерфейсы в пакете java.awt.im.spi, которые могут быть доступны путем добавления их в путь класса приложения. Реализации также могут поддерживать использование собственных методов ввода платформ, на которых они работают; однако не все платформы и языковые локали предоставляют методы ввода. Раскладки клавиатуры предоставляются хостовой платформой.
Методы ввода недоступны, если (а) не установлен ни один метод ввода, написанный на языке программирования Java, и (б) реализация Java Platform или базовая платформа не поддерживают собственные методы ввода. В этом случае контексты ввода все еще могут быть созданы и использованы; их поведение определяется отдельными методами ниже.
- Since:
- 1.2
- See Also:
-
Component.getInputContext(),Component.enableInputMethods(boolean)
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | InputContext() | Конструирует 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) | Устанавливает подмножества набора символов Юникода, для ввода которых должны быть разрешены методы ввода этого контекста ввода. |
void | setCompositionEnabled(boolean enable) | Включает или отключает текущий метод ввода для составления, в зависимости от значения параметра |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
InputContext
protected InputContext()
Создаёт объект InputContext. Этот метод защищён, поэтому клиенты не могут напрямую создать InputContext. Контексты ввода получают, вызвав getInstance().
Методы
getInstance
public static InputContext getInstance()
Возвращает новый экземпляр InputContext.
- Возвращает:
- новый экземпляр InputContext
selectInputMethod
public boolean selectInputMethod(Locale locale)
Пытается выбрать метод ввода или раскладку клавиатуры, поддерживающую указанный locale, и возвращает значение, указывающее, был ли успешно выбран такой метод ввода или раскладка клавиатуры. Следующие шаги выполняются до тех пор, пока метод ввода не будет выбран:
- Если текущий выбранный метод ввода или раскладка клавиатуры поддерживают запрашиваемый locale, он остаётся выбранным.
- Если нет метода ввода или раскладки клавиатуры, доступного, который поддерживает запрашиваемый locale, текущий метод ввода или раскладка клавиатуры остаются выбранными.
- Если пользователь ранее выбрал метод ввода или раскладку клавиатуры для запрашиваемого locale из пользовательского интерфейса, то наиболее недавно выбранный такой метод ввода или раскладка клавиатуры повторно выбирается.
- В противном случае, метод ввода или раскладка клавиатуры, поддерживающая запрашиваемый locale, выбирается способом, зависящим от реализации.
Не все операционные системы хостов предоставляют API для определения locale текущего выбранного локального метода ввода или раскладки клавиатуры и для выбора локального метода ввода или раскладки клавиатуры по locale. Для операционных систем хостов, которые не предоставляют такой API, selectInputMethod предполагает, что локальные методы ввода или раскладки клавиатуры, предоставляемые операционной системой хоста, поддерживают только системный locale по умолчанию.
Компонент редактирования текста может вызвать этот метод, например, при изменении точки вставки, чтобы пользователь мог немедленно продолжить ввод на языке окружающего текста.
- Параметры:
-
locale- Желаемый новый locale. - Возвращает:
- true, если метод ввода или раскладка клавиатуры, активные после этого вызова, поддерживают желаемый locale.
- Исключения:
-
NullPointerException- еслиlocaleравно null
getLocale
public Locale getLocale()
Возвращает текущий locale текущего метода ввода или раскладки клавиатуры. Возвращает null, если в контексте ввода нет текущего метода ввода или раскладки клавиатуры или если метод InputMethod.getLocale() текущего метода ввода возвращает null.
Не все операционные системы хостов предоставляют API для определения locale текущего выбранного локального метода ввода или раскладки клавиатуры. Для операционных систем хостов, которые не предоставляют такой API, getLocale предполагает, что текущий locale всех локальных методов ввода или раскладок клавиатуры, предоставляемых операционной системой хоста, является системным locale по умолчанию.
- Возвращает:
- текущий locale текущего метода ввода или раскладки клавиатуры
- С:
- 1.3
setCharacterSubsets
public void setCharacterSubsets(Character.Subset[] subsets)
Устанавливает подмножества набора символов Unicode, которые методы ввода этого контекста ввода должны иметь право вводить. Null может быть передан, чтобы указать, что все символы разрешены. Начальное значение равно null. Настройка применяется к текущему методу ввода, а также к методам ввода, выбранным после выполнения этого вызова. Однако приложения не могут полагаться на то, что этот вызов окажет желаемое действие, так как эта настройка не может быть передана всем локальным методам ввода — приложениям по-прежнему необходимо применять собственное валидирование символов. Если доступных методов ввода нет, то этот метод не оказывает никакого действия.
- Параметры:
-
subsets- подмножества набора символов Unicode, из которых могут вводиться символы
setCompositionEnabled
public void setCompositionEnabled(boolean enable)
Включает или отключает текущий метод ввода для составления, в зависимости от значения параметра enable.
Метод ввода, включенный для составления, интерпретирует входящие события как для составления, так и для управления, в то время как отключённый метод ввода не интерпретирует события для составления. Однако обратите внимание, что события передаются методу ввода независимо от того, включён он или нет, и что отключённый для составления метод ввода всё ещё может интерпретировать события для управления, включая включение или отключение самого себя для составления.
Для методов ввода, предоставляемых операционными системами хостов, не всегда возможно определить, поддерживается ли эта операция. Например, метод ввода может включать составление только для некоторых locale и ничего не делать для других locale. Для таких методов ввода возможно, что этот метод не вызывает 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.
- Исключения:
-
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 для контекста ввода по умолчанию каждого окна. Если методы ввода недоступны, этот метод не оказывает никакого действия.
getInputMethodControlObject
public Object getInputMethodControlObject()
Возвращает объект управления от текущего метода ввода или null. Объект управления предоставляет методы, которые управляют поведением метода ввода или получают информацию от метода ввода. Тип объекта — это специфичный для метода ввода класс. Клиенты должны сравнивать результат с известными классами объектов управления методом ввода и выполнять приведение к соответствующему классу для вызова предоставленных методов.
Если методы ввода недоступны или текущий метод ввода не предоставляет объект управления методом ввода, возвращается null.
- Возвращает:
- Объект управления от текущего метода ввода или null.
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/im/InputContext.html