模块  java.desktop
软件包  java.awt.event

Class InputMethodEvent

  • 实现的所有接口
    Serializable

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

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

    从以下版本开始:
    1.2
    另请参见:
    Serialized Form
    • 字段详细信息

      • 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。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • InputMethodEvent

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

        插入符号和visiblePosition的偏移量与当前组合文本相关; 也就是说,内撰写文本text ,如果这是一个INPUT_METHOD_TEXT_CHANGED情况下,内撰写文本text前述的INPUT_METHOD_TEXT_CHANGED事件否则。

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

        参数
        source - 事件发起的对象
        id - 活动类型
        when - 一个长整数,指定事件发生的时间
        text - 组合的承诺和组合文本,首先提交文本; 必须是null时事件类型是CARET_POSITION_CHANGED ; 如果没有已提交或撰写的文本,则可能是nullINPUT_METHOD_TEXT_CHANGED
        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为空
        从以下版本开始:
        1.4
      • InputMethodEvent

        public InputMethodEvent​(Component source,
                                int id,
                                AttributedCharacterIterator text,
                                int committedCharacterCount,
                                TextHitInfo caret,
                                TextHitInfo visiblePosition)
        使用指定的源组件,类型,文本,插入符号和InputMethodEvent构造一个InputMethodEvent

        插入符号和visiblePosition的偏移量与当前组合文本相关; 也就是说,内撰写文本text ,如果这是一个INPUT_METHOD_TEXT_CHANGED情况下,内撰写文本text前述的INPUT_METHOD_TEXT_CHANGED事件否则。 通过调用EventQueue.getMostRecentEventTime()初始化此事件的时间戳。

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

        参数
        source - 事件发起的对象
        id - 事件类型
        text - 组合的承诺和组合文本,首先提交文本; 必须是null时事件类型是CARET_POSITION_CHANGED ; 如果没有已提交或撰写的文本,则可能是nullINPUT_METHOD_TEXT_CHANGED
        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为空
      • InputMethodEvent

        public InputMethodEvent​(Component source,
                                int id,
                                TextHitInfo caret,
                                TextHitInfo visiblePosition)
        使用指定的源组件,类型,插入符号和InputMethodEvent构造一个InputMethodEvent 文本设置为nullcommittedCharacterCount 0。

        caretvisiblePosition的偏移量与当前组合文本相关; 即,内撰写文本text前述的INPUT_METHOD_TEXT_CHANGED事件,如果事件被构造为CARET_POSITION_CHANGED事件。 对于没有文本的INPUT_METHOD_TEXT_CHANGED事件, caretvisiblePosition必须是null 通过调用EventQueue.getMostRecentEventTime()初始化此事件的时间戳。

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

        参数
        source - 事件发起的对象
        id - 事件类型
        caret - 插入符号(又名插入点); null如果当前组合文本中没有插入符号
        visiblePosition - 最重要的位置; null如果在当前组合文本中没有建议显示可见位置
        异常
        IllegalArgumentException - 如果 id不在范围内 INPUT_METHOD_FIRST .. INPUT_METHOD_LAST
        IllegalArgumentException - 如果 source为空
    • 方法详细信息

      • 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()中的组合文本。

        结果
        插入符号(又名插入点)。 如果当前组合文本中没有插入符号,则为空。
      • getVisiblePosition

        public TextHitInfo getVisiblePosition()
        获取最重要的可见位置。

        可见位置的偏移量相对于当前组合文本; 也就是说,如果这是一个INPUT_METHOD_TEXT_CHANGED事件,则getText()中的组合文本,否则为前一个INPUT_METHOD_TEXT_CHANGED事件的getText()中的组合文本。

        结果
        最重要的位置是可见的。 如果在当前组合文本中没有建议可见位置,则为空。
      • consume

        public void consume()
        使用此事件,以便由发起它的源以默认方式处理它。
        重写:
        consumeAWTEvent
      • isConsumed

        public boolean isConsumed()
        返回是否已使用此事件。
        重写:
        isConsumed在类 AWTEvent
        结果
        true如果此事件已被消耗; 否则false
        另请参见:
        consume()
      • getWhen

        public long getWhen()
        返回此事件发生时的时间戳。
        结果
        这个事件的时间戳
        从以下版本开始:
        1.4
      • paramString

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