Module java.desktop
Package java.awt.im

Interface InputMethodRequests

已知的所有子接口:
InputMethodContext

public interface InputMethodRequests
InputMethodRequests定义了文本编辑组件必须处理的请求,以便与输入法一起工作。组件可以自己实现此接口,也可以使用实现它的单独对象。实现此接口的对象必须从组件的getInputMethodRequests方法返回。

文本编辑组件还必须提供一个输入法事件监听器。

该接口旨在支持两种输入用户界面之一:

  • 即时输入,其中组合文本显示为文本组件的文本主体的一部分。
  • 下方输入,其中组合文本显示在单独的组合窗口中,就在插入点的下方,当提交时将插入文本的位置。请注意,如果在组件的文本主体中选择了文本,则在提交时将用提交的文本替换此文本;因此,它不被视为输入文本的上下文的一部分。
自版本:
1.2
参见:
  • Method Details

    • getTextLocation

      Rectangle getTextLocation(TextHitInfo offset)
      获取当前组合文本中指定偏移量的位置,或已提交文本中的选择位置。例如,此信息用于将候选窗口定位在组合文本附近,或将组合窗口定位在提交文本将插入的位置附近。

      如果组件具有组合文本(因为最近发送给它的InputMethodEvent包含组合文本),则偏移量是相对于组合文本的 - 偏移量0表示组合文本中的第一个字符。返回的位置应为此字符。

      如果组件没有组合文本,则应忽略偏移量,并且返回的位置应反映包含选定文本的最后一行中的开始(在行方向上)的突出显示。例如,对于水平从左到右的文本(例如英语),返回包含选定文本最后一行上最左字符左侧的位置。对于从右到左进行行处理的垂直自上而下的文本,返回包含选定文本最左行顶部的位置。

      位置表示为0厚度的插入符号,即,如果文本是水平绘制的,则宽度为0,如果文本是垂直绘制的,则高度为0。其他文本方向需要映射到水平或垂直方向。矩形使用绝对屏幕坐标。

      参数:
      offset - 如果存在组合文本,则为组合文本内的偏移量;否则为null
      返回:
      表示偏移量的屏幕位置的矩形
    • getLocationOffset

      TextHitInfo getLocationOffset(int x, int y)
      获取屏幕上指定绝对x和y坐标处组合文本中的偏移量。此信息用于处理鼠标点击和鼠标光标,例如。偏移量是相对于组合文本的,因此偏移量0表示组合文本的开头。

      如果位置在组合文本占用的区域之外,则返回null。

      参数:
      x - 屏幕上的绝对x坐标
      y - 屏幕上的绝对y坐标
      返回:
      描述组合文本中偏移量的文本命中信息
    • getInsertPositionOffset

      int getInsertPositionOffset()
      获取文本编辑组件中包含的已提交文本中插入位置的偏移量。这是通过输入法输入的字符插入的偏移量。此信息由输入法使用,例如,用于检查插入位置周围的文本。
      返回:
      插入位置的偏移量
    • getCommittedText

      AttributedCharacterIterator getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes)
      获取提供对文本编辑组件中包含的整个文本和属性的访问权限的迭代器,但不包括未提交的文本。对于索引计算,应忽略未提交(组合)文本,并且不应通过迭代器访问它。

      输入法可以提供其感兴趣的属性列表。在这种情况下,不需要通过迭代器访问实现者可能需要的其他属性信息。如果列表为null,则应使所有可用的属性信息可访问。

      参数:
      beginIndex - 第一个字符的索引
      endIndex - 最后一个字符后面的字符的索引
      attributes - 输入法感兴趣的属性列表
      返回:
      提供对文本及其属性的访问权限的迭代器
    • getCommittedTextLength

      int getCommittedTextLength()
      获取文本编辑组件中包含的整个文本的长度,但不包括未提交(组合)文本。
      返回:
      除未提交文本外的文本长度
    • cancelLatestCommittedText

      AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes)
      获取文本编辑组件中最新提交的文本,并将其从组件的文本主体中删除。这用于一些输入法中的“撤销提交”功能,其中提交的文本恢复到其先前的组合状态。组合文本将使用InputMethodEvent发送到组件。

      通常,此功能应仅在提交文本后立即支持,而不是在用户对文本执行其他操作后支持。当不支持该功能时,返回null。

      输入法可以提供其感兴趣的属性列表。在这种情况下,不需要通过迭代器访问实现者可能需要的其他属性信息。如果列表为null,则应使所有可用的属性信息可访问。

      参数:
      attributes - 输入法感兴趣的属性列表
      返回:
      最新提交的文本,或当不支持“撤销提交”功能时为null
    • getSelectedText

      获取文本编辑组件中当前选定的文本。这可用于各种目的。其中之一是一些输入法中的“重新转换”功能。在这种情况下,输入法通常会发送输入法事件以用组合文本替换选定的文本。根据输入法的功能,这可能是选定文本的原始组合文本,文本中任何位置输入的最新组合文本,或者从选定文本转换回的文本版本。

      输入法可以提供其感兴趣的属性列表。在这种情况下,不需要通过迭代器访问实现者可能需要的其他属性信息。如果列表为null,则应使所有可用的属性信息可访问。

      参数:
      attributes - 输入法感兴趣的属性列表
      返回:
      当前选定的文本