-
- All Known Subinterfaces:
-
InputMethodContext
public interface InputMethodRequests
InputMethodRequests定义文本编辑组件必须处理的请求才能使用输入方法。 组件可以自己实现此接口,也可以使用实现它的单独对象。 必须从组件的getInputMethodRequests方法返回实现此接口的对象。文本编辑组件还必须提供输入方法事件监听器。
该接口旨在支持两个输入用户界面之一:
- 现场输入,其中组合文本显示为文本组件的文本正文的一部分。
- 现场输入,其中组合文本显示在插入点下方的单独组合窗口中,文本将在提交时插入。 请注意,如果在组件的文本正文中选择了文本,则该文本将在承诺时由提交的文本替换; 因此,它不被视为文本输入的上下文的一部分。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Component.getInputMethodRequests()
,InputMethodListener
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 AttributedCharacterIterator
cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes)
从文本编辑组件获取最新提交的文本,并将其从组件的文本正文中删除。AttributedCharacterIterator
getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes)
获取一个迭代器,提供对文本编辑组件中包含的整个文本和属性的访问权限,但未提交的文本除外。int
getCommittedTextLength()
获取文本编辑组件中包含的整个文本的长度,但未提交(组合)的文本除外。int
getInsertPositionOffset()
获取文本编辑组件中包含的已提交文本中插入位置的偏移量。TextHitInfo
getLocationOffset(int x, int y)
获取屏幕上指定的绝对x和y坐标的合成文本中的偏移量。AttributedCharacterIterator
getSelectedText(AttributedCharacterIterator.Attribute[] attributes)
从文本编辑组件中获取当前选定的文本。Rectangle
getTextLocation(TextHitInfo offset)
获取当前组合文本中指定偏移量的位置,或获取提交文本中选定内容的位置。
-
-
-
方法详细信息
-
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
AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes)
从文本编辑组件中获取当前选定的文本。 这可以用于各种目的。 其中之一是某些输入法中的“Reconvert”功能。 在这种情况下,输入方法通常会发送输入方法事件以用组合文本替换所选文本。 根据输入法的功能,这可能是所选文本的原始合成文本,在文本中任何位置输入的最新合成文本,或从所选文本转换回来的文本版本。输入方法可以提供它感兴趣的属性列表。在这种情况下,不需要通过迭代器访问实现者可能具有的其他属性的信息。 如果列表为null,则应使所有可用的属性信息都可访问。
- 参数
-
attributes
- 输入法感兴趣的属性列表 - 结果
- 当前选定的文字
-
-