java.awt.im.spi

接口
所有超级接口:
InputMethodRequests

public interface InputMethodContext
     
extends InputMethodRequests

提供输入方法可以用来与其客户端组件通信或用来请求其他服务的方法。此接口由输入方法框架实现,并且输入方法针对其通过 InputMethod.setInputMethodContext(java.awt.im.spi.InputMethodContext) 收到的实例调用其方法。此外再没有其他实现程序或调用者。

从以下版本开始:
1.3

方法摘要
 JFrame createInputMethodJFrame(String title, boolean attachToInputContext)
          创建输入方法使用的顶层 Swing JFrame。
 Window createInputMethodWindow(String title, boolean attachToInputContext)
          创建输入方法使用的顶层窗口。
 void dispatchInputMethodEvent(int id, AttributedCharacterIterator text, int committedCharacterCount, TextHitInfo caret, TextHitInfo visiblePosition)
          根据给定的参数创建输入方法事件并将其指派到客户端组件。
 void enableClientWindowNotification(InputMethod inputMethod, boolean enable)
          启用或禁用指定输入方法的当前客户端窗口位置或状态的通知。
 
从接口 java.awt.im.InputMethodRequests 继承的方法
cancelLatestCommittedText, getCommittedText, getCommittedTextLength, getInsertPositionOffset, getLocationOffset, getSelectedText, getTextLocation
 

方法详细信息

dispatchInputMethodEvent

void dispatchInputMethodEvent(int id,
                              AttributedCharacterIterator text,
                              int committedCharacterCount,
                              TextHitInfo caret,
                              TextHitInfo visiblePosition)
根据给定的参数创建输入方法事件并将其指派到客户端组件。有关参数的信息,请参阅 InputMethodEvent.InputMethodEvent(java.awt.Component, int, java.awt.font.TextHitInfo, java.awt.font.TextHitInfo)


createInputMethodWindow

Window createInputMethodWindow(String title,
                               boolean attachToInputContext)
创建输入方法使用的顶层窗口。此窗口预期的行为是:
  • 浮动于所有文档窗口和对话框上方
  • 它和它包含的所有组件都不接收焦点
  • 该窗口略有装饰,如减化的无标题拖动区域
不过,对应于这三项的实际行为与平台有关。

标题可以显示也可以不显示,具体取决于所创建窗口的实际类型。

如果 attachToInputContext 为 true,该新窗口将共享对应于此输入方法上下文的输入上下文,以便自动将窗口中的组件事件指派到该输入方法。此外,使用 setVisible(true) 打开窗口时,输入上下文将阻止可能的对输入方法的停用或激活调用。

如果不再需要已返回的输入方法窗口,则输入方法必须调用该窗口上的 Window.dispose

参数:
title - 窗口标题栏(如果有此标题栏)中显示的标题。将 null 值看作空字符串 ("")。
attachToInputContext - 是否应共享对应于此输入方法上下文的输入上下文
返回:
带有输入方法使用的特殊特征的窗口
抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless 返回 true

createInputMethodJFrame

JFrame createInputMethodJFrame(String title,
                               boolean attachToInputContext)
创建输入方法使用的顶层 Swing JFrame。此窗口预期的行为是:
  • 浮动于所有文档窗口和对话框上方
  • 它和它包含的所有组件都不接收焦点
  • 该窗口略有装饰,如减化的无标题拖动区域
不过,对应于这三项的实际行为与平台有关。

标题可以显示也可以不显示,具体取决于所创建窗口的实际类型。

如果 attachToInputContext 为 true,该新窗口将共享对应于此输入方法上下文的输入上下文,以便自动将窗口中的组件事件指派到该输入方法。此外,使用 setVisible(true) 打开窗口时,输入上下文将阻止可能的对输入方法的停用或激活调用。

如果不再需要已返回的输入方法窗口,则输入方法必须调用该窗口上的 Window.dispose

参数:
title - 窗口标题栏(如果有此标题栏)中显示的标题。将 null 值看作空字符串 ("")。
attachToInputContext - 是否应共享对应于此输入方法上下文的输入上下文
返回:
带有输入方法使用的特殊特征的 JFrame
抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless 返回 true
从以下版本开始:
1.4

enableClientWindowNotification

void enableClientWindowNotification(InputMethod inputMethod,
                                    boolean enable)
启用或禁用指定输入方法的当前客户端窗口位置或状态的通知。启用通知时,按方法规范中描述的那样调用该输入方法的 notifyClientWindowChange 方法。释放掉输入方法后将自动禁用通知。

参数:
inputMethod - 已启用或已禁用通知的输入方法
enable - true 表示启用,false 表示禁用