-
- All Known Subinterfaces:
-
InputMethodContext
public interface InputMethodRequests
InputMethodRequests定义文本编辑组件必须处理的请求,以便使用输入法。 该组件可以实现此接口本身或使用实现它的单独对象。 必须从组件的getInputMethodRequests方法返回实现此接口的对象。文本编辑组件还必须提供一个输入法事件侦听器。
该接口旨在支持两个输入用户界面之一:
- 现场输入,组合文本显示为文本组件文本体的一部分。
- 现场输入,其中组合文本显示在单独的合成窗口中,恰好在提交文本时将插入文本的插入点下方。 请注意,如果在组件的文本正文中选择文本,则此文本将在承诺时被承诺文本替换; 因此,它不被视为输入文本的上下文的一部分。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Component.getInputMethodRequests()
,InputMethodListener
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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
- 组合文本中的偏移量,如果有合成文本; 否则为空 - 结果
- 表示偏移的屏幕位置的矩形
-
getLocationOffset
TextHitInfo getLocationOffset(int x, int y)
获取屏幕上指定的绝对x和y坐标的组合文本中的偏移量。 此信息用于处理鼠标点击和鼠标光标。 偏移量相对于组合文本,因此offset 0表示组合文本的开头。如果位置在组合文本占用的区域之外,则返回null。
- 参数
-
x
- 屏幕上的绝对x坐标 -
y
- 屏幕上的绝对y坐标 - 结果
- 描述组合文本中的偏移的文本命中信息。
-
getInsertPositionOffset
int getInsertPositionOffset()
获取文本编辑组件中包含的提交文本中插入位置的偏移量。 这是插入通过输入法输入的字符的偏移量。 该信息由输入法使用,例如用于检查插入位置周围的文本。- 结果
- 插入位置的偏移
-
getCommittedText
AttributedCharacterIterator getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes)
获取一个迭代器,提供对文本编辑组件中包含的整个文本和属性的访问,除了未提交的文本。 对于索引计算,应忽略未提交(组合)文本,不能通过迭代器访问。输入法可以提供它感兴趣的属性的列表。在这种情况下,实现者可能需要的关于其他属性的信息不需要通过迭代器访问。 如果列表为空,则所有可用属性信息都应该可访问。
- 参数
-
beginIndex
- 第一个字符的索引 -
endIndex
- 最后一个字符后面的字符的索引 -
attributes
- 输入法感兴趣的属性列表 - 结果
- 提供对文本及其属性的访问的迭代器
-
getCommittedTextLength
int getCommittedTextLength()
获取文本编辑组件中包含的整个文本的长度,但未提交(组合)文本除外)。- 结果
- 文本的长度除未提交的文本外
-
cancelLatestCommittedText
AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes)
从文本编辑组件获取最新提交的文本,并将其从组件的文本正文中删除。 这用于一些输入方法中的“撤消提交”功能,其中提交的文本将恢复到其先前的组合状态。 组合文本将使用InputMethodEvent发送到组件。通常,此功能只能在文本提交后立即支持,而不是在用户对文本执行其他操作之后。 当不支持该功能时,返回null。
输入法可以提供它感兴趣的属性的列表。在这种情况下,实现者可能需要的关于其他属性的信息不需要通过迭代器访问。 如果列表为空,则所有可用属性信息都应该可访问。
- 参数
-
attributes
- 输入法感兴趣的属性列表 - 结果
- 最新提交的文本,如果不支持“撤消提交”功能,则为空
-
getSelectedText
AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes)
从文本编辑组件获取当前选定的文本。 这可以用于各种目的。 其中一个是一些输入法中的“再转换”功能。 在这种情况下,输入法通常会发送一个输入法事件来替换所选择的文本与组合文本。 根据输入法的功能,这可能是所选文本的原始组合文本,文本中任何位置输入的最新合成文本,或从选定文本转换回来的文本版本。输入法可以提供它感兴趣的属性的列表。在这种情况下,实现者可能需要的关于其他属性的信息不需要通过迭代器访问。 如果列表为空,则所有可用属性信息都应该可访问。
- 参数
-
attributes
- 输入法感兴趣的属性列表 - 结果
- 当前选择的文本
-
-