public interface InputMethod
InputMethod的子类可以通过输入法框架加载; 然后可以通过API( InputContext.selectInputMethod
)或用户界面(输入法选择菜单)选择它们。
Modifier and Type | Method and Description |
---|---|
void |
activate()
激活立即输入处理的输入法。
|
void |
deactivate(boolean isTemporary)
禁用输入法。
|
void |
dispatchEvent(AWTEvent event)
将事件调度到输入法。
|
void |
dispose()
释放此输入法使用的资源。
|
void |
endComposition()
结束本文中可能正在进行的任何输入组合。
|
Object |
getControlObject()
从此输入法返回一个控件对象,或者返回null。
|
Locale |
getLocale()
返回当前的输入区域设置。
|
void |
hideWindows()
关闭或隐藏由此输入法实例或其类打开的所有窗口。
|
boolean |
isCompositionEnabled()
确定是否启用此输入法。
|
void |
notifyClientWindowChange(Rectangle bounds)
通知客户端窗口位置或状态的这种输入方式的更改。
|
void |
reconvert()
开始重新转换操作。
|
void |
removeNotify()
通知输入方法,客户端组件已从其包含层次结构中删除,或该组件已禁用输入法支持。
|
void |
setCharacterSubsets(Character.Subset[] subsets)
设置该输入法允许输入的Unicode字符集的子集。
|
void |
setCompositionEnabled(boolean enable)
启用或禁用此输入方法,用于组合物中,这取决于参数的值
enable 。
|
void |
setInputMethodContext(InputMethodContext context)
设置输入法上下文,用于将输入法事件分派给客户端组件,并从客户端组件请求信息。
|
boolean |
setLocale(Locale locale)
尝试设置输入区域设置。
|
void setInputMethodContext(InputMethodContext context)
在实例化此输入法后立即调用此方法。
context
- 此输入法的输入法上下文
NullPointerException
- 如果
context
为空
boolean setLocale(Locale locale)
调用这个方法
InputContext.selectInputMethod
, getLocale
方法返回一个非空值。 locale
- 要输入的区域设置
NullPointerException
- 如果
locale
为空
Locale getLocale()
void setCharacterSubsets(Character.Subset[] subsets)
调用这个方法
InputContext.setCharacterSubsets
。 subsets
- 可以输入字符的Unicode字符集的子集
void setCompositionEnabled(boolean enable)
enable
。
允许组合解释组合和控制目的的传入事件的输入法,而禁用的输入法不会解释组合的事件。 但是请注意,无论是否启用事件,事件都将传递给输入法,并且禁用组合的输入方法仍可能将事件解释为控制目的,包括启用或禁用其组合。
对于由主机操作系统提供的输入方法,并不总是能够确定是否支持该操作。 例如,输入法可以仅为一些区域设置组合,而对其他语言环境也不做任何操作。 对于这样的输入方法,这种方法可能不会抛出UnsupportedOperationException
,而且也不影响组合是否启用。
调用这个方法
InputContext.setCompositionEnabled
, InputContext.selectInputMethod
从不同的方法切换到此输入法时,如果先前选择的输入法isCompositionEnabled
方法返回而不抛出异常。 enable
- 是否启用输入法的组合
UnsupportedOperationException
- 如果此输入法不支持启用/禁用操作
isCompositionEnabled()
boolean isCompositionEnabled()
调用这个方法
InputContext.isCompositionEnabled
和 InputContext.selectInputMethod
从该输入法切换到不同的方法时。 true
如果这个输入法启用了组合;
false
否则。
UnsupportedOperationException
- 如果此输入法不支持检查是否启用了组合
setCompositionEnabled(boolean)
void reconvert()
InputMethodRequests.getSelectedText
方法从当前客户端组件获取要重新转换的文本。
它可以使用其他InputMethodRequests
方法来请求重新转换操作所需的附加信息。
由所述操作所产生的组成和提交文本被发送到客户端组件作为序列InputMethodEvent
秒。
如果给定的文本无法重新转换,则应将相同的文本作为已提交的文本发送到客户端组件。
此方法由InputContext.reconvert
调用 。
UnsupportedOperationException
- 如果输入法不支持重新转换操作。
void dispatchEvent(AWTEvent event)
consume
方法;
这导致事件不会被分派到组件的事件处理方法或事件监听器。
如果事件是InputEvent或其子类的实例,则会调度事件。 这包括AWT类KeyEvent和MouseEvent的实例。
event
- 事件被分派到输入法
NullPointerException
- 如果
event
为空
void notifyClientWindowChange(Rectangle bounds)
InputMethodContext.enableClientWindowNotification
)。
如果调用输入上下文的removeNotify
方法,则对此方法的调用将暂停,并在为新客户端组件激活输入方法时恢复。
在以下情况下被称为:
enableClientWindowNotification(inputMethod, true)
如果当前客户端组件存在, enableClientWindowNotification(inputMethod, true)
之后第一次激活输入法时,如果在通话期间没有当前客户端组件可用, bounds
- 客户端窗口的bounds
在屏幕上;
如果客户端窗口被图标化或不可见,则为null
void activate()
如果一个输入法提供了自己的窗口,那么在这一点上应该确保所有必要的窗口都是可见的。
调用这个方法
InputContext.dispatchEvent
当客户端组件接收到FOCUS_GAINED事件时, InputContext.selectInputMethod
从不同的方法切换到此输入法时。 void deactivate(boolean isTemporary)
FocusEvent.isTemporary
。
如果一个输入法提供了自己的窗口,那么现在只能关闭与当前组合相关的窗口(如查找选择窗口)。 可能的是,对于不同的客户端组件,将立即重新启动输入法,并关闭并重新打开更多的持久性窗口(如控制面板)将会产生不必要的屏幕闪烁。 在激活不同输入法类的实例之前, hideWindows()
在当前输入法中被调用。
调用这个方法
InputContext.dispatchEvent
当客户端组件接收到FOCUS_LOST事件时, InputContext.selectInputMethod
从该输入法切换到不同的方法时, removeNotify
如果当前客户端组件被删除。 isTemporary
- 焦点变化是否是暂时的
void hideWindows()
void removeNotify()
void endComposition()
文本编辑组件可以在各种情况下调用这一点,例如当用户移动文本内的插入点(但在组合文本之外)时,或者组件的文本保存到文件或复制到剪贴板时。
调用这个方法
InputContext.endComposition
, InputContext.dispatchEvent
切换到不同的客户端组件时 InputContext.selectInputMethod
从该输入法切换到另一个输入法时。 void dispose()
此方法由InputContext.dispose
调用 。
仅当输入法不活动时才调用该方法。 处理后,此实例没有调用此接口的方法。
Object getControlObject()