Module  java.desktop
软件包  java.awt.event

Class InputMethodEvent

  • All Implemented Interfaces:
    Serializable


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

    输入法事件中包含的文本由两部分组成:提交文本和合成文本。 任一部分都可能是空的。 两个部分一起替代以前事件中发送的任何未提交的合成文本,或当前选择的提交文本。 提交的文本应该被集成到文本组件的持久性数据中,不会再发送。 组合的文本可能会重复发送,并进行更改以反映用户的编辑操作。 提交的文本总是在组合文本之前。

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

      • INPUT_METHOD_FIRST

        @Native
        public static final int INPUT_METHOD_FIRST
        标记输入法事件ids范围的第一个整数ID。
        另请参见:
        Constant Field Values
      • INPUT_METHOD_TEXT_CHANGED

        @Native
        public static final int INPUT_METHOD_TEXT_CHANGED
        事件类型指示改变的输入法文本。 该事件在处理输入时由输入法生成。
        另请参见:
        Constant Field Values
      • CARET_POSITION_CHANGED

        @Native
        public static final int CARET_POSITION_CHANGED
        指示输入法文本中更改的插入点的事件类型。 如果只有插入符号改变,则处理输入时,此事件由输入法生成。
        另请参见:
        Constant Field Values
      • INPUT_METHOD_LAST

        @Native
        public static final int INPUT_METHOD_LAST
        标记输入法事件ids范围的最后一个整数ID。
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • InputMethodEvent

        public InputMethodEvent​(Component source,
                                int id,
                                long when,
                                AttributedCharacterIterator text,
                                int committedCharacterCount,
                                TextHitInfo caret,
                                TextHitInfo visiblePosition)
        构造具有指定的源组件,类型,时间,文本,插入符和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

        插入符号和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 - 最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 文本设置为nullcommittedCharacterCount为0。

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

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

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

      • getText

        public AttributedCharacterIterator getText​()
        获取组合的承诺和合成文本。 从索引0到索引getCommittedCharacterCount() - 1是提交文本,其余的字符都是文本。
        结果
        文本。 CARET_POSITION_CHANGED始终为空; 如果没有组合或提交的文本,则INPUT_METHOD_TEXT_CHANGED可能为null。
      • getCommittedCharacterCount

        public int getCommittedCharacterCount​()
        获取文本中提交的字符数。
        结果
        文字中承诺的字符数
      • getCaret

        public TextHitInfo getCaret​()
        得到插入符号。

        插入符的偏移量与当前组合文本相对应; 也就是getText()中的组合文本,如果这是一个INPUT_METHOD_TEXT_CHANGED事件,则前面的INPUT_METHOD_TEXT_CHANGED事件的getText()中的合成文本不然。

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

        public TextHitInfo getVisiblePosition​()
        获取最显着的位置。

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

        结果
        最显着的位置。 如果在当前合成文本中没有可视位置的建议,则为空。
      • consume

        public void consume​()
        消耗此事件,使其不会以源自源的默认方式处理。
        重写:
        consumeAWTEvent
      • isConsumed

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

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

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