java.lang.Object java.util.EventObject java.awt.AWTEvent java.awt.event.InputMethodEvent
public class InputMethodEvent
输入方法事件包含有关使用输入方法进行撰写的文本的信息。只要文本发生变化,输入方法就会发送一个事件。如果当前正在使用输入方法的文本组件是活动的客户端,则将事件指派给该组件。否则,将事件指派给单独的组合窗口。
涉及输入方法事件的文本由两部分组成:已提交文本和撰写文本。任何一个部分都可以为空。两部分一起替代了前一事件中发送的未提交的撰写文本,或当前选定的已提交文本。已提交文本应该整合到文本组件的持久数据中,它将不会再次发送。撰写的文本可能会反复修改和发送,以反映用户的编辑操作。已提交文本始终在撰写文本之前。
字段摘要 | |
---|---|
static int |
CARET_POSITION_CHANGED 事件类型,它指示输入方法文本中修改的插入点。 |
static int |
INPUT_METHOD_FIRST 标记输入方法事件 id 范围内的第一个整数 id。 |
static int |
INPUT_METHOD_LAST 标记输入方法事件 id 范围内最后一个整数 id。 |
static int |
INPUT_METHOD_TEXT_CHANGED 事件类型,它指示修改的输入方法文本。 |
从类 java.util.EventObject 继承的字段 |
---|
source |
构造方法摘要 | |
---|---|
InputMethodEvent(Component source, int id, AttributedCharacterIterator text, int committedCharacterCount, TextHitInfo caret, TextHitInfo visiblePosition) 通过指定源组件、类型、文本、插入符和 visiblePosition 来构造 InputMethodEvent 。 |
|
InputMethodEvent(Component source, int id, long when, AttributedCharacterIterator text, int committedCharacterCount, TextHitInfo caret, TextHitInfo visiblePosition) 通过指定源组件、类型、时间、文本、插入符和 visiblePosition 来构造 InputMethodEvent 。 |
|
InputMethodEvent(Component source, int id, TextHitInfo caret, TextHitInfo visiblePosition) 通过指定源组件、类型、插入符和 visiblePosition 来构造 InputMethodEvent 。 |
方法摘要 | |
---|---|
void |
consume() 使用此事件,以便不会按默认方式由产生此事件的源代码来处理此事件。 |
TextHitInfo |
getCaret() 获取插入符。 |
int |
getCommittedCharacterCount() 获取文本中已提交字符的数量。 |
AttributedCharacterIterator |
getText() 获取已提交文本和撰写文本的组合。 |
TextHitInfo |
getVisiblePosition() 获取对于可见性至关重要的位置。 |
long |
getWhen() 返回此事件发生时的时间戳。 |
boolean |
isConsumed() 返回是否已经使用此事件。 |
String |
paramString() 返回标识此事件的参数字符串。 |
从类 java.awt.AWTEvent 继承的方法 |
---|
getID, setSource, toString |
从类 java.util.EventObject 继承的方法 |
---|
getSource |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final int INPUT_METHOD_FIRST
public static final int INPUT_METHOD_TEXT_CHANGED
public static final int CARET_POSITION_CHANGED
public static final int INPUT_METHOD_LAST
构造方法详细信息 |
---|
public InputMethodEvent(Component source, int id, long when, AttributedCharacterIterator text, int committedCharacterCount, TextHitInfo caret, TextHitInfo visiblePosition)
InputMethodEvent
。
插入符和 visiblePosition 的偏移量与当前撰写的文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED
事件,则为 text
中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED
事件的 text
中的撰写文本。
注意,传递无效的 id
会导致不明确的行为。如果 source
为 null
,则此方法抛出 IllegalArgumentException
。
source
- 产生事件的对象
id
- 事件类型
when
- 指定事件发生时间的 long 整数
text
- 已提交文本和撰写文本的组合,已提交文本在前;如果事件类型为
CARET_POSITION_CHANGED
,则必须为
null
;对于
INPUT_METHOD_TEXT_CHANGED
事件来说,如果无任何已提交文本或撰写文本,则可能为
null
committedCharacterCount
- 文本中已提交的字符数
caret
- 插入符(也叫插入点);如果当前撰写文本中无任何插入符,则为
null
visiblePosition
- 对于可见性至关重要的位置;如果当前撰写文本中对于可见位置无任何建议,则为
null
IllegalArgumentException
- 如果
id
不在
INPUT_METHOD_FIRST
到
INPUT_METHOD_LAST
范围内;或者 id 为
CARET_POSITION_CHANGED
而
text
不为
null
;或者
committedCharacterCount
不在
0
到
(text.getEndIndex() - text.getBeginIndex())
范围内
IllegalArgumentException
- 如果
source
为 null
public InputMethodEvent(Component source, int id, AttributedCharacterIterator text, int committedCharacterCount, TextHitInfo caret, TextHitInfo visiblePosition)
InputMethodEvent
。
插入符和 visiblePosition 的偏移量与当前撰写的文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED
事件,则为 text
中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED
事件的 text
中的撰写文本。通过调用 EventQueue.getMostRecentEventTime()
初始化此事件的时间戳。
注意,传递无效的 id
会导致不明确的行为。如果 source
为 null
,则此方法抛出 IllegalArgumentException
。
source
- 产生事件的对象
id
- 事件类型
text
- 已提交文本和撰写文本的组合,已提交文本在前;如果事件类型为
CARET_POSITION_CHANGED
,则必须为
null
;对于
INPUT_METHOD_TEXT_CHANGED
事件来说,如果无任何已提交文本或撰写文本,则可能为
null
committedCharacterCount
- 文本中已提交的字符数
caret
- 插入符(也叫插入点);如果当前撰写文本中无任何插入符,则为
null
visiblePosition
- 对于可见性至关重要的位置;如果当前撰写文本中对于可见位置无任何建议,则为
null
IllegalArgumentException
- 如果
id
不在
INPUT_METHOD_FIRST
到
INPUT_METHOD_LAST
范围内;或者 id 为
CARET_POSITION_CHANGED
而
text
不为
null
;或者
committedCharacterCount
不在
0
到
(text.getEndIndex() - text.getBeginIndex())
范围内
IllegalArgumentException
- 如果
source
为 null
public InputMethodEvent(Component source, int id, TextHitInfo caret, TextHitInfo visiblePosition)
InputMethodEvent
。文本设置为
null
,
committedCharacterCount
设置为 0。
Caret
和 visiblePosition
的偏移量与当前撰写文本有关;也就是说,如果将事件构造为 CARET_POSITION_CHANGED
事件,则为前面 INPUT_METHOD_TEXT_CHANGED
事件的 text
中的撰写文本。对于没有文本的 INPUT_METHOD_TEXT_CHANGED
事件,caret
和 visiblePosition
必须为 null
。通过调用 EventQueue.getMostRecentEventTime()
初始化此事件的时间戳。
注意,传递无效的 id
会导致不明确的行为。如果 source
为 null
,则此方法抛出 IllegalArgumentException
。
source
- 产生事件的对象
id
- 事件类型
caret
- 插入符(也叫插入点);如果当前撰写文本中无任何插入符,则为
null
visiblePosition
- 对于可见性至关重要的位置;如果当前撰写文本中对于可见位置无任何建议,则为
null
IllegalArgumentException
- 如果
id
不在
INPUT_METHOD_FIRST
到
INPUT_METHOD_LAST
范围内
IllegalArgumentException
- 如果
source
为 null
方法详细信息 |
---|
public AttributedCharacterIterator getText()
getCommittedCharacterCount() - 1
的字符为已提交文本,其余字符为撰写文本。
public int getCommittedCharacterCount()
public TextHitInfo getCaret()
插入符的偏移量与当前撰写文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED
事件,则为 getText() 中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED
事件的 getText() 中的撰写文本。
public TextHitInfo getVisiblePosition()
可见位置的偏移量与当前撰写文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED
事件,则为 getText() 中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED
事件的 getText() 中的撰写文本。
public void consume()
public boolean isConsumed()
AWTEvent
中的
isConsumed
consume()
public long getWhen()
public String paramString()
AWTEvent
中的
paramString