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

Class FocusEvent

  • 实现的所有接口
    Serializable

    public class FocusEvent
    extends ComponentEvent
    低级事件,指示组件已获得或丢失输入焦点。 此低级事件由Component(例如TextField)生成。 该事件将传递给每个注册为使用Component的addFocusListener方法接收此类事件的FocusListenerFocusAdapter对象。 FocusAdapter对象实现了FocusListener接口。)每个此类侦听器对象在事件发生时获取此FocusEvent

    焦点事件有两个级别:永久性和临时性。 当焦点从一个Component直接移动到另一个Component时,例如通过调用requestFocus()或者当用户使用TAB键遍历组件时,会发生永久焦点更改事件。 当临时丢失对象的焦点作为另一个操作的间接结果(例如窗口取消激活或滚动条拖动)时,会发生临时焦点更改事件。 在这种情况下,一旦操作完成,原始焦点状态将自动恢复,或者,对于Window取消激活的情况,当重新激活窗口时。 永久和临时焦点事件都使用FOCUS_GAINED和FOCUS_LOST事件ID传递; 在使用isTemporary()方法的事件中可以区分级别。

    每个FocusEvent记录其原因 - 生成此事件的原因。 原因在创建焦点事件期间分配,可以通过调用getCause()进行检索。

    如果任何特定FocusEvent实例的id参数不在FOCUS_FIRSTFOCUS_LAST范围内, FOCUS_FIRST导致未指定的行为。

    从以下版本开始:
    1.1
    另请参见:
    FocusAdapterFocusListenerTutorial: Writing a Focus ListenerSerialized Form
    • 字段详细信息

      • FOCUS_FIRST

        public static final int FOCUS_FIRST
        用于焦点事件的id范围中的第一个数字。
        另请参见:
        常数字段值
      • FOCUS_LAST

        public static final int FOCUS_LAST
        用于焦点事件的id范围中的最后一个数字。
        另请参见:
        常数字段值
      • FOCUS_GAINED

        public static final int FOCUS_GAINED
        此事件表示Component现在是焦点所有者。
        另请参见:
        常数字段值
      • FOCUS_LOST

        public static final int FOCUS_LOST
        此事件表示组件不再是焦点所有者。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • FocusEvent

        public FocusEvent​(Component source,
                          int id,
                          boolean temporary,
                          Component opposite)
        构造具有指定临时状态的FocusEvent对象, ComponentCause.UNKNOWN原因。 相反的Component是另一个参与此焦点变化的Component 对于FOCUS_GAINED事件,这是失去焦点的Component 对于FOCUS_LOST事件,这是获得关注的Component 如果使用本机应用程序,在不同VM中使用Java应用程序或没有其他Component此焦点更改,则相反的Componentnull

        此方法抛出IllegalArgumentException如果sourcenull

        参数
        source - 发起此事件的 Component
        id - 指示事件类型的整数。 有关允许值的信息,请参阅FocusEvent的类说明
        temporary - 如果焦点变化是暂时的,则等于true ; 否则为false
        opposite - 焦点更改中涉及的另一个组件,或 null
        异常
        IllegalArgumentException - 如果 source等于 null
        从以下版本开始:
        1.4
        另请参见:
        EventObject.getSource()AWTEvent.getID()isTemporary()getOppositeComponent()FocusEvent.Cause.UNKNOWN
      • FocusEvent

        public FocusEvent​(Component source,
                          int id,
                          boolean temporary,
                          Component opposite,
                          FocusEvent.Cause cause)
        构造具有指定临时状态的FocusEvent对象,与Component相对,并且原因。 相反的Component是另一个参与此焦点变化的Component 对于FOCUS_GAINED事件,这是失去焦点的Component 对于FOCUS_LOST事件,这是获得关注的Component 如果使用本机应用程序,在不同VM中使用Java应用程序或没有其他Component此焦点更改,则相反的Componentnull

        此方法抛出IllegalArgumentException如果sourcecausenull

        参数
        source - 发起此事件的 Component
        id - 指示事件类型的整数。 有关允许值的信息,请参阅FocusEvent的类说明
        temporary - 如果焦点变化是暂时的,则等于true ; 否则为false
        opposite - 焦点更改中涉及的另一个组件,或 null
        cause - 焦点事件原因。
        异常
        IllegalArgumentException - 如果 source等于 null或者如果 cause等于 null
        从以下版本开始:
        9
        另请参见:
        EventObject.getSource()AWTEvent.getID()isTemporary()getOppositeComponent()FocusEvent.Cause
      • FocusEvent

        public FocusEvent​(Component source,
                          int id,
                          boolean temporary)
        构造一个FocusEvent对象,并标识更改是否是临时的。

        此方法抛出IllegalArgumentException如果sourcenull

        参数
        source - 发起此事件的 Component
        id - 指示事件类型的整数。 有关允许值的信息,请参阅FocusEvent的类说明
        temporary - 如果焦点变化是暂时的,则等于true ; 否则为false
        异常
        IllegalArgumentException - 如果 source等于 null
        另请参见:
        EventObject.getSource()AWTEvent.getID()isTemporary()
      • FocusEvent

        public FocusEvent​(Component source,
                          int id)
        构造一个FocusEvent对象,并将其标识为焦点的永久更改。

        此方法抛出IllegalArgumentException如果sourcenull

        参数
        source - 发起此事件的 Component
        id - 指示事件类型的整数。 有关允许值的信息,请参阅FocusEvent的类说明
        异常
        IllegalArgumentException - 如果 source等于 null
        另请参见:
        EventObject.getSource()AWTEvent.getID()
    • 方法详细信息

      • isTemporary

        public boolean isTemporary()
        将焦点更改事件标识为临时或永久。
        结果
        true如果焦点变化是暂时的; 否则为false
      • getOppositeComponent

        public Component getOppositeComponent()
        返回此焦点更改中涉及的另一个Component。 对于FOCUS_GAINED事件,这是失去焦点的Component。 对于FOCUS_LOST事件,这是获得焦点的组件。 如果使用本机应用程序,将Java应用程序放在不同的VM或上下文中,或者没有其他Component,则会发生此焦点更改,则返回null。
        结果
        参与焦点更改的其他Component,或null
        从以下版本开始:
        1.4
      • paramString

        public String paramString()
        返回标识此事件的参数字符串。 此方法对于事件记录和调试很有用。
        重写:
        paramStringComponentEvent
        结果
        标识事件及其属性的字符串