java.awt.event

接口
java.lang.Object
  继承者 java.util.EventObject
      继承者 java.awt.AWTEvent
          继承者 java.awt.event.InputMethodEvent
所有已实现的接口:
Serializable

public class InputMethodEvent
     
extends AWTEvent

输入方法事件包含有关使用输入方法进行撰写的文本的信息。只要文本发生变化,输入方法就会发送一个事件。如果当前正在使用输入方法的文本组件是活动的客户端,则将事件指派给该组件。否则,将事件指派给单独的组合窗口。

涉及输入方法事件的文本由两部分组成:已提交文本和撰写文本。任何一个部分都可以为空。两部分一起替代了前一事件中发送的未提交的撰写文本,或当前选定的已提交文本。已提交文本应该整合到文本组件的持久数据中,它将不会再次发送。撰写的文本可能会反复修改和发送,以反映用户的编辑操作。已提交文本始终在撰写文本之前。

从以下版本开始:
1.2
另请参见:
序列化表格

字段摘要
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.awt.AWTEvent 继承的字段
ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id, INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX, TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASK
 
从类 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
 

字段详细信息

INPUT_METHOD_FIRST

public static final int INPUT_METHOD_FIRST
标记输入方法事件 id 范围内的第一个整数 id。

另请参见:
常量字段值

INPUT_METHOD_TEXT_CHANGED

public static final int INPUT_METHOD_TEXT_CHANGED
事件类型,它指示修改的输入方法文本。此事件由输入方法在处理输入时生成。

另请参见:
常量字段值

CARET_POSITION_CHANGED

public static final int CARET_POSITION_CHANGED
事件类型,它指示输入方法文本中修改的插入点。此事件由输入方法在处理仅有插入符修改的输入时生成。

另请参见:
常量字段值

INPUT_METHOD_LAST

public static final int INPUT_METHOD_LAST
标记输入方法事件 id 范围内最后一个整数 id。

另请参见:
常量字段值
构造方法详细信息

InputMethodEvent

public InputMethodEvent(Component source,
                        int id,
                        long when,
                        AttributedCharacterIterator text,
                        int committedCharacterCount,
                        TextHitInfo caret,
                        TextHitInfo visiblePosition)
通过指定源组件、类型、时间、文本、插入符和 visiblePosition 来构造 InputMethodEvent

插入符和 visiblePosition 的偏移量与当前撰写的文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED 事件,则为 text 中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED 事件的 text 中的撰写文本。

注意,传递无效的 id 会导致不明确的行为。如果 sourcenull,则此方法抛出 IllegalArgumentException

参数:
source - 产生事件的对象
id - 事件类型
when - 指定事件发生时间的 long 整数
text - 已提交文本和撰写文本的组合,已提交文本在前;如果事件类型为 CARET_POSITION_CHANGED,则必须为 null;对于 INPUT_METHOD_TEXT_CHANGED 事件来说,如果无任何已提交文本或撰写文本,则可能为 null
committedCharacterCount - 文本中已提交的字符数
caret - 插入符(也叫插入点);如果当前撰写文本中无任何插入符,则为 null
visiblePosition - 对于可见性至关重要的位置;如果当前撰写文本中对于可见位置无任何建议,则为 null
抛出:
IllegalArgumentException - 如果 id 不在 INPUT_METHOD_FIRSTINPUT_METHOD_LAST 范围内;或者 id 为 CARET_POSITION_CHANGEDtext 不为 null;或者 committedCharacterCount 不在 0(text.getEndIndex() - text.getBeginIndex()) 范围内
IllegalArgumentException - 如果 source 为 null
从以下版本开始:
1.4

InputMethodEvent

public InputMethodEvent(Component source,
                        int id,
                        AttributedCharacterIterator text,
                        int committedCharacterCount,
                        TextHitInfo caret,
                        TextHitInfo visiblePosition)
通过指定源组件、类型、文本、插入符和 visiblePosition 来构造 InputMethodEvent

插入符和 visiblePosition 的偏移量与当前撰写的文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED 事件,则为 text 中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED 事件的 text 中的撰写文本。通过调用 EventQueue.getMostRecentEventTime() 初始化此事件的时间戳。

注意,传递无效的 id 会导致不明确的行为。如果 sourcenull,则此方法抛出 IllegalArgumentException

参数:
source - 产生事件的对象
id - 事件类型
text - 已提交文本和撰写文本的组合,已提交文本在前;如果事件类型为 CARET_POSITION_CHANGED,则必须为 null;对于 INPUT_METHOD_TEXT_CHANGED 事件来说,如果无任何已提交文本或撰写文本,则可能为 null
committedCharacterCount - 文本中已提交的字符数
caret - 插入符(也叫插入点);如果当前撰写文本中无任何插入符,则为 null
visiblePosition - 对于可见性至关重要的位置;如果当前撰写文本中对于可见位置无任何建议,则为 null
抛出:
IllegalArgumentException - 如果 id 不在 INPUT_METHOD_FIRSTINPUT_METHOD_LAST 范围内;或者 id 为 CARET_POSITION_CHANGEDtext 不为 null;或者 committedCharacterCount 不在 0(text.getEndIndex() - text.getBeginIndex()) 范围内
IllegalArgumentException - 如果 source 为 null

InputMethodEvent

public InputMethodEvent(Component source,
                        int id,
                        TextHitInfo caret,
                        TextHitInfo visiblePosition)
通过指定源组件、类型、插入符和 visiblePosition 来构造 InputMethodEvent。文本设置为 nullcommittedCharacterCount 设置为 0。

CaretvisiblePosition 的偏移量与当前撰写文本有关;也就是说,如果将事件构造为 CARET_POSITION_CHANGED 事件,则为前面 INPUT_METHOD_TEXT_CHANGED 事件的 text 中的撰写文本。对于没有文本的 INPUT_METHOD_TEXT_CHANGED 事件,caretvisiblePosition 必须为 null。通过调用 EventQueue.getMostRecentEventTime() 初始化此事件的时间戳。

注意,传递无效的 id 会导致不明确的行为。如果 sourcenull,则此方法抛出 IllegalArgumentException

参数:
source - 产生事件的对象
id - 事件类型
caret - 插入符(也叫插入点);如果当前撰写文本中无任何插入符,则为 null
visiblePosition - 对于可见性至关重要的位置;如果当前撰写文本中对于可见位置无任何建议,则为 null
抛出:
IllegalArgumentException - 如果 id 不在 INPUT_METHOD_FIRSTINPUT_METHOD_LAST 范围内
IllegalArgumentException - 如果 source 为 null
方法详细信息

getText

public AttributedCharacterIterator getText()
获取已提交文本和撰写文本的组合。从索引 0 到索引 getCommittedCharacterCount() - 1 的字符为已提交文本,其余字符为撰写文本。

返回:
文本。对于 CARET_POSITION_CHANGED 始终为 null;如果没有任何撰写文本或已提交文本,则对于 INPUT_METHOD_TEXT_CHANGED 可能为 null。

getCommittedCharacterCount

public int getCommittedCharacterCount()
获取文本中已提交字符的数量。


getCaret

public TextHitInfo getCaret()
获取插入符。

插入符的偏移量与当前撰写文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED 事件,则为 getText() 中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED 事件的 getText() 中的撰写文本。

返回:
插入符(也叫插入点)。如果当前撰写文本中没有任何插入符,则为 null。

getVisiblePosition

public TextHitInfo getVisiblePosition()
获取对于可见性至关重要的位置。

可见位置的偏移量与当前撰写文本有关;也就是说,如果是 INPUT_METHOD_TEXT_CHANGED 事件,则为 getText() 中的撰写文本;否则为前面 INPUT_METHOD_TEXT_CHANGED 事件的 getText() 中的撰写文本。

返回:
对于可见性至关重要的位置。如果当前撰写文本中对于可见位置没有任何建议,则为 null。

consume

public void consume()
使用此事件,以便不会按默认方式由产生此事件的源代码来处理此事件。

覆盖:
AWTEvent 中的 consume

isConsumed

public boolean isConsumed()
返回是否已经使用此事件。

覆盖:
AWTEvent 中的 isConsumed
另请参见:
consume()

getWhen

public long getWhen()
返回此事件发生时的时间戳。

返回:
此事件的时间戳
从以下版本开始:
1.4

paramString

public String paramString()
返回标识此事件的参数字符串。此方法对于事件记录和调试很有用。它包含文本形式的事件 ID、用 "+" 分隔的已提交文本和撰写文本的字符、已提交字符的数量、插入符和可见位置。

覆盖:
AWTEvent 中的 paramString
返回:
标识事件及其属性的字符串