By default, one InputContext instance is created per Window instance, and this input context is shared by all components within the window's container hierarchy. However, this means that only one text input operation is possible at any one time within a window, and that the text needs to be committed when moving the focus from one text component to another. If this is not desired, text components can create their own input context instances.
The Java Platform supports input methods that have been developed in the Java
programming language, using the interfaces in the java. package,
which can be made available by adding them to the application's class path.
Implementations may also support using the native input methods of the platforms they run on;
however, not all platforms and locales provide input methods. Keyboard layouts
are provided by the host platform.
Input methods are unavailable if (a) no input method written in the Java programming language has been installed and (b) the Java Platform implementation or the underlying platform does not support native input methods. In this case, input contexts can still be created and used; their behavior is specified with the individual methods below.
java.awt.Component#getInputContext , java.awt.Component#enableInputMethods
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public void | |
| public void | |
| public Object | Returns: A control object from the current input method, or null.Returns a control object from the current input method, or null. |
| public static InputContext | |
| public Locale | Returns: the current locale of the current input method or keyboard layoutReturns the current locale of the current input method or keyboard layout. |
| public boolean | Returns: true if the current input method is enabled for
composition; false otherwiseDetermines whether the current input method is enabled for composition. |
| public void | |
| public void | removeNotify(Component
Client component client)Notifies the input context that a client component has been removed from its containment hierarchy, or that input method support has been disabled for the component. |
| public boolean | Returns: true if the input method or keyboard layout that's active after this call supports the desired locale.The desired new locale. locale)Attempts to select an input method or keyboard layout that supports the given locale, and returns a value indicating whether such an input method or keyboard layout has been successfully selected. |
| public void | setCharacterSubsets(Character.
The subsets of the Unicode character set from which characters may be input subsetsSets the subsets of the Unicode character set that input methods of this input context should be allowed to input. |
| public void | setCompositionEnabled(boolean
whether to enable the current input method for composition enable)Enables or disables the current input method for composition,
depending on the value of the parameter |
| InputContext | back to summary |
|---|---|
| protected InputContext() Constructs an InputContext.
This method is protected so clients cannot instantiate
InputContext directly. Input contexts are obtained by
calling | |
| dispatchEvent | back to summary |
|---|---|
| public void dispatchEvent(AWTEvent event) Dispatches an event to the active input method. Called by AWT. If no input method is available, then the event will never be consumed.
| |
| dispose | back to summary |
|---|---|
| public void dispose() Releases the resources used by this input context. Called by AWT for the default input context of each Window. If no input methods are available, then this method has no effect. | |
| endComposition | back to summary |
|---|---|
| public void endComposition() Ends any input composition that may currently be going on in this context. Depending on the platform and possibly user preferences, this may commit or delete uncommitted text. Any changes to the text are communicated to the active component using an input method event. If no input methods are available, then this method has no effect. A text editing component may call this in a variety of situations, for example, when the user moves the insertion point within the text (but outside the composed text), or when the component's text is saved to a file or copied to the clipboard. | |
| getInputMethodControlObject | back to summary |
|---|---|
| public Object getInputMethodControlObject() Returns a control object from the current input method, or null. A control object provides methods that control the behavior of the input method or obtain information from the input method. The type of the object is an input method specific class. Clients have to compare the result against known input method control object classes and cast to the appropriate class to invoke the methods provided. If no input methods are available or the current input method does not provide an input method control object, then null is returned.
| |
| getInstance | back to summary |
|---|---|
| public static InputContext getInstance() Returns a new InputContext instance.
| |
| getLocale | back to summary |
|---|---|
| public Locale getLocale() Returns the current locale of the current input method or keyboard
layout.
Returns null if the input context does not have a current input method
or keyboard layout or if the current input method's
Not all host operating systems provide API to determine the locale of
the currently selected native input method or keyboard layout.
For host operating systems that don't provide such API,
| |
| isCompositionEnabled | back to summary |
|---|---|
| public boolean isCompositionEnabled() Determines whether the current input method is enabled for composition. An input method that is enabled for composition interprets incoming events for both composition and control purposes, while a disabled input method does not interpret events for composition.
| |
| reconvert | back to summary |
|---|---|
| public void reconvert() Asks the current input method to reconvert text from the
current client component. The input method obtains the text to
be reconverted from the client component using the
| |
| removeNotify | back to summary |
|---|---|
| public void removeNotify(Component client) Notifies the input context that a client component has been
removed from its containment hierarchy, or that input method
support has been disabled for the component. This method is
usually called from the client component's
| |
| selectInputMethod | back to summary |
|---|---|
| public boolean selectInputMethod(Locale locale) Attempts to select an input method or keyboard layout that supports the given locale, and returns a value indicating whether such an input method or keyboard layout has been successfully selected. The following steps are taken until an input method has been selected:
Not all host operating systems provide API to determine the locale of
the currently selected native input method or keyboard layout, and to
select a native input method or keyboard layout by locale.
For host operating systems that don't provide such API,
A text editing component may call this method, for example, when the user changes the insertion point, so that the user can immediately continue typing in the language of the surrounding text.
| |
| setCharacterSubsets | back to summary |
|---|---|
| public void setCharacterSubsets(Character. Sets the subsets of the Unicode character set that input methods of this input context should be allowed to input. Null may be passed in to indicate that all characters are allowed. The initial value is null. The setting applies to the current input method as well as input methods selected after this call is made. However, applications cannot rely on this call having the desired effect, since this setting cannot be passed on to all host input methods - applications still need to apply their own character validation. If no input methods are available, then this method has no effect. | |
| setCompositionEnabled | back to summary |
|---|---|
| public void setCompositionEnabled(boolean enable) Enables or disables the current input method for composition,
depending on the value of the parameter An input method that is enabled for composition interprets incoming events for both composition and control purposes, while a disabled input method does not interpret events for composition. Note however that events are passed on to the input method regardless whether it is enabled or not, and that an input method that is disabled for composition may still interpret events for control purposes, including to enable or disable itself for composition.
For input methods provided by host operating systems, it is not always possible to
determine whether this operation is supported. For example, an input method may enable
composition only for some locales, and do nothing for other locales. For such input
methods, it is possible that this method does not throw
| |