所有类


java.awt.im.spi
接口 InputMethod


public interface InputMethod

定义支持复杂文本输入的输入方法接口。输入方法通常支持多语言文本输入,这些语言(如汉语、日语和韩语)都有无法在标准键盘上直接表示的字符。不过,它们也可以用来支持英语语音文本输入或泰语字符的重新排序。

InputMethod 的子类可以由输入方法框架加载;然后可以通过 API (InputContext.selectInputMethod) 或通过用户界面(输入方法选择菜单)对其进行选择。

从以下版本开始:
1.3

方法摘要
 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)
          试图设置输入语言环境。
 

方法详细信息

setInputMethodContext

void setInputMethodContext(InputMethodContext context)
设置输入方法的上下文,这样可以将输入方法事件指派到客户端组件并能从客户端组件请求信息。

实例化此输入方法之后马上就会调用一次此方法。

参数:
context - 此输入方法的输入方法上下文
抛出:
NullPointerException - 如果 context 为 null

setLocale

boolean setLocale(Locale locale)
试图设置输入语言环境。如果输入方法支持所需的语言环境,则此输入方法将更改自己的行为以支持该语言环境的输入并返回 true。否则,它将返回 false,且不会更改自己的行为。

以下情况可调用此方法

  • InputContext.selectInputMethod 调用。
  • 如果用户指定了语言环境,或者以前已选定输入方法的 getLocale 方法返回一个非 null 值,则当通过用户界面切换为该输入方法时调用。

参数:
locale - 要输入的语言环境
返回:
是否支持指定的语言环境
抛出:
NullPointerException - 如果 locale 为 null

getLocale

Locale getLocale()
返回当前的输入语言环境。异常情况下可能返回 null。

以下情况可调用此方法

  • InputContext.getLocale 调用,和
  • 通过用户界面从此输入方法切换为另一种输入方法时调用。

返回:
当前的输入语言环境,或 null

setCharacterSubsets

void setCharacterSubsets(Character.Subset[] subsets)
设置允许此输入方法进行输入的 Unicode 字符集的子集。可能会传入 Null,以指示允许输入所有字符。

以下情况可调用此方法

参数:
subsets - 可以从其输入字符的 Unicode 字符集的子集

setCompositionEnabled

void setCompositionEnabled(boolean enable)
启用或禁用为进行撰写的输入方法,具体取决于参数 enable 的值。

启用为进行撰写的输入方法将出于撰写和控制目的解释传入事件,而禁用的输入方法不能出于撰写目的解释事件。但要注意:无论输入方法是启用还是禁用,事件都会传到该输入方法;禁用为进行撰写的输入方法可能仍会出于控制目的解释包括为撰写而启用或禁用自身在内的事件。

对于由主机操作系统提供的输入方法,并不总能确定是否支持此操作。例如,某个输入方法可能只对某些语言环境启用了撰写功能,而对另一些语言环境不执行任何操作。对于此类输入方法,此方法有可能既不抛出 UnsupportedOperationException,也不影响是否已启用撰写功能。

以下情况可调用此方法

参数:
enable - 是否启用为进行撰写的输入方法
抛出:
UnsupportedOperationException - 如果此输入方法不支持启用/禁用操作
另请参见:
isCompositionEnabled()

isCompositionEnabled

boolean isCompositionEnabled()
确定此输入方法是否已启用。启用撰写功能的输入方法将出于撰写和控制目的解释传入事件,而禁用的输入方法不会出于撰写目的解释事件。

以下情况可调用此方法

返回:
如果为进行撰写启用了此输入方法,则返回 true;否则返回 false
抛出:
UnsupportedOperationException - 如果此输入方法不支持是否已启用撰写功能检查
另请参见:
setCompositionEnabled(boolean)

reconvert

void reconvert()
启动恢复操作。输入方法使用 InputMethodRequests.getSelectedText 方法从当前客户端组件中获得要恢复的文本。它也可以使用其他 InputMethodRequests 方法请求恢复操作所需的其他信息。此操作生成的已混合且已提交文本将作为 InputMethodEvent 序列发送到客户端组件。如果给定的文本不能恢复,则会把相同的文本作为已提交文本发送到客户端组件。

可由 InputContext.reconvert 调用此方法。

抛出:
UnsupportedOperationException - 如果输入方法不支持恢复操作。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部