Module java.desktop
Package java.awt.event

Class InputMethodEvent

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

public class InputMethodEvent extends AWTEvent
输入法事件包含有关使用输入法正在组成的文本的信息。每当文本发生更改时,输入法都会发送一个事件。如果当前正在使用输入法的文本组件是活动客户端,则事件将分派到该组件。否则,它将被分派到一个单独的组合窗口。

输入法事件中包含的文本由两部分组成: 已提交文本和组合文本。任一部分都可能为空。这两部分一起替换了先前事件中发送的任何未提交的组合文本,或当前选定的已提交文本。已提交文本应该被集成到文本组件的持久数据中,不会再次发送。组合文本可能会重复发送,以反映用户的编辑操作。已提交文本始终位于组合文本之前。

自:
1.2
参见:
  • Field Details

    • INPUT_METHOD_FIRST

      @Native public static final int INPUT_METHOD_FIRST
      标记输入法事件id范围的第一个整数id。
      参见:
    • INPUT_METHOD_TEXT_CHANGED

      @Native public static final int INPUT_METHOD_TEXT_CHANGED
      表示输入法文本发生变化的事件类型。此事件由输入法在处理输入时生成。
      参见:
    • CARET_POSITION_CHANGED

      @Native public static final int CARET_POSITION_CHANGED
      表示输入法文本中插入点发生变化的事件类型。此事件由输入法在处理输入时生成,如果只有插入点发生了变化。
      参见:
    • INPUT_METHOD_LAST

      @Native public static final int INPUT_METHOD_LAST
      标记输入法事件id范围的最后一个整数id。
      参见:
  • Constructor Details

    • InputMethodEvent

      public InputMethodEvent(Component source, int id, long when, AttributedCharacterIterator text, int committedCharacterCount, TextHitInfo caret, TextHitInfo visiblePosition)
      使用指定的源组件、类型、时间、文本、插入点和可见位置构造一个InputMethodEvent

      插入点和可见位置的偏移量是相对于当前组合文本的;也就是说,如果这是一个INPUT_METHOD_TEXT_CHANGED事件,则在text中的组合文本,否则在前一个INPUT_METHOD_TEXT_CHANGED事件的text中的组合文本。

      请注意,传入无效的id会导致未指定的行为。如果sourcenull,此方法将抛出IllegalArgumentException

      参数:
      source - 事件来源的对象
      id - 事件类型
      when - 指定事件发生时间的长整型整数
      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_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)
      使用指定的源组件、类型、文本、插入点和可见位置构造一个InputMethodEvent

      插入点和可见位置的偏移量是相对于当前组合文本的;也就是说,如果这是一个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_FIRST..INPUT_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)
      使用指定的源组件、类型、插入点和可见位置构造一个InputMethodEvent。文本设置为nullcommittedCharacterCount设置为0。

      插入点和可见位置的偏移量是相对于当前组合文本的;也就是说,如果正在构造的事件作为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_FIRST..INPUT_METHOD_LAST
      IllegalArgumentException - 如果source为null
  • Method Details

    • 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()
      消耗此事件,以使其不会被产生它的源默认方式处理。
      覆盖:
      consume 在类 AWTEvent
    • isConsumed

      public boolean isConsumed()
      返回此事件是否已被消耗。
      覆盖:
      isConsumed 在类 AWTEvent
      返回:
      如果此事件已被消耗,则返回true;否则返回false
      参见:
    • getWhen

      public long getWhen()
      返回此事件发生的时间戳。
      返回:
      此事件的时间戳
      自:
      1.4
    • paramString

      public String paramString()
      返回标识此事件的参数字符串。此方法对于事件记录和调试很有用。它包含以文本形式的事件ID,由“+”分隔的已提交和组合文本的字符,已提交字符的数量,插入符和可见位置。
      覆盖:
      paramString 在类 AWTEvent
      返回:
      标识事件及其属性的字符串