Module java.desktop

Package java.awt.im.spi


package java.awt.im.spi
提供了使开发人员能够与任何Java运行时环境一起使用的输入法的接口。输入法是一种软件组件,允许用户以键盘以外的方式输入文本。它们通常用于在键盘上输入使用成千上万个不同字符的日语、中文或韩语。但是,该软件包还允许开发其他语言的输入法,并使用完全不同的输入机制,如手写识别。

打包输入法

通过将输入法添加到应用程序的类路径中,可以使输入法可用。输入法的主JAR文件必须包含文件:
     META-INF/services/java.awt.im.spi.InputMethodDescriptor
 
该文件应包含一个完全限定的类名列表,每行一个,这些类实现了java.awt.im.spi.InputMethodDescriptor接口。忽略每个名称周围的空格和制表符,以及空行。注释字符是'#'\u0023);在每行上,第一个注释字符后的所有字符都将被忽略。该文件必须使用UTF-8编码。

例如,如果实现Foo输入法的java.awt.im.spi.InputMethodDesciptor类的完全限定名称为com.sun.ime.FooInputMethodDescriptor,则文件META-INF/services/java.awt.im.spi.InputMethodDescriptor包含一行:

     com.sun.ime.FooInputMethodDescriptor
 
输入法还必须提供至少两个类:一个类实现java.awt.im.spi.InputMethodDescriptor接口,一个类实现java.awt.im.spi.InputMethod接口。输入法应该分开这些接口的实现,以便在实际需要时可以推迟加载实现InputMethod的类。

加载输入法

输入法框架通常会推迟加载输入法类,直到绝对需要为止。它仅在AWT初始化期间加载InputMethodDescriptor实现。当选择了输入法时,它会加载InputMethod实现。

Java输入法和对等文本组件

Java输入法框架旨在支持所有输入法(宿主输入法和Java输入法)和组件(对等和轻量级)的所有组合。但是,由于底层平台的限制,可能无法始终启用Java输入法和对等AWT组件之间的通信。因此,对于这种特定组合的支持取决于平台。在Sun的Java SE运行时环境中,Windows支持此组合,但Solaris不支持。 有关概述、教程、示例、指南和工具文档,请参阅输入法框架概述
自版本:
1.3
  • Interfaces
    Class
    Description
    定义了支持复杂文本输入的输入法接口。
    提供了输入法可以用来与其客户组件通信或请求其他服务的方法。
    定义了提供有关输入法的足够信息以便选择和加载该输入法的方法。