public interface InputMethodRequests
InputMethodRequests 定义文本编辑组件为了与输入方法一起使用而必须处理的请求。该组件可以实现此接口本身,也可以使用实现此接口的单独对象。实现此接口的对象必须根据组件的 getInputMethodRequests 方法返回。
文本编辑组件还必须提供输入方法事件侦听器。
设计此接口的目的是支持两个输入用户界面中的其中一个界面:
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) 获取当前撰写文本中指定偏移量的位置,或已提交文本中的选择位置。 |
方法详细信息 |
---|
Rectangle getTextLocation(TextHitInfo offset)
如果组件有撰写文本(因为给它发送的最新 InputMethodEvent 包含撰写文本),则该偏移量是相对于撰写文本的——偏移量 0 指示撰写文本中的第一个字符。返回的位置应该是针对此字符的。
如果组件没有撰写文本,则应该忽略偏移量,返回的位置应该反映出包含已选定文本的最后一行中高亮显示的开始处(行方向)。例如,对于水平方向从左到右排列的文本(如英文),则返回包含已选定文本的最后一行上最左边的字符左边的位置。对于垂直方向从上到下排列的文本,行从右向左排列,则返回包含已选定文本的最左边一行的上端位置。
该位置表示为 0 厚度补字号,也就是说,如果文本是水平排列的,则为 0 宽度,如果文本是垂直排列的,则为 0 高度。其他文本方向需要映射到水平或垂直方向。矩形使用绝对值屏幕坐标。
offset
- 撰写文本中的偏移量(如果有撰写文本);否则为 null
TextHitInfo getLocationOffset(int x, int y)
如果位置在撰写文本占用的区域外,则返回 null。
x
- 屏幕上 x 的绝对坐标
y
- 屏幕上 y 的绝对坐标
int getInsertPositionOffset()
AttributedCharacterIterator getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes)
输入方法可以提供一个它感兴趣的属性的列表。在这种情况下,有关实现程序可能具有的其他属性的信息不需要通过迭代器进行访问。如果列表为 null,则应该让所有可用的属性信息都可访问。
beginIndex
- 第一个字符的索引
endIndex
- 最后一个字符后面的字符的索引
attributes
- 输入方法感兴趣的属性列表
int getCommittedTextLength()
AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes)
通常,只有在文本提交后才应立即支持此功能,而不是在用户对文本执行了其他操作后才支持。该功能不受支持时,返回 null。
输入方法可以提供一个它感兴趣的属性的列表。在这种情况下,有关实现程序可能具有的其他属性的信息不需要通过迭代器进行访问。如果列表为 null,则应该让所有可用的属性信息都可访问。
attributes
- 输入方法感兴趣的属性的列表
AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes)
输入方法可以提供一个它感兴趣的属性的列表。在这种情况下,有关实现程序可能具有的其他属性的信息不需要通过迭代器进行访问。如果列表为 null,则应该让所有可用的属性信息都可访问。
attributes
- 输入方法感兴趣的属性的列表