Spec-Zone.ru › OpenJDK 17

Класс InputContext

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

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

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

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

Since:
1.2
See Also:
  • Component.getInputContext()
  • Component.enableInputMethods(boolean)

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

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

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

Модификатор и тип Метод Описание
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.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

InputContext

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

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

getInstance

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

selectInputMethod

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

Не все операционные системы предоставляют 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. Если метод ввода не может переконвертировать заданный текст, текст возвращается как зафиксированный текст в 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, 2021, 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/17/docs/api/java.desktop/java/awt/im/InputContext.html

Spec-Zone.ru

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