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

Class FocusEvent

  • All Implemented Interfaces:
    Serializable


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

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

    FocusEvent记录它的原因 - 这个事件被生成的原因。 原因是在焦点事件创建期间分配的,可以通过调用getCause()来检索。

    如果任何特定的FocusEvent实例的id参数不在从FOCUS_FIRSTFOCUS_LAST的范围内,将会引起未指定的行为。

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

      • FOCUS_FIRST

        public static final int FOCUS_FIRST
        用于焦点事件的ids范围中的第一个数字。
        另请参见:
        Constant Field Values
      • FOCUS_LAST

        public static final int FOCUS_LAST
        用于焦点事件的ids范围中的最后一个数字。
        另请参见:
        Constant Field Values
      • FOCUS_GAINED

        public static final int FOCUS_GAINED
        此事件表示组件现在是焦点所有者。
        另请参见:
        Constant Field Values
      • FOCUS_LOST

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

      • FocusEvent

        public FocusEvent​(Component source,
                          int id,
                          boolean temporary,
                          Component opposite)
        构造一个具有指定临时状态的FocusEvent对象,与Component相反, Cause.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 如果使用本机应用程序发生此焦点更改,使用Java应用程序在不同的VM中,或者没有其他的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​()
        返回此焦点更改中涉及的其他组件。 对于FOCUS_GAINED事件,这是失去焦点的组件。 对于FOCUS_LOST事件,这是获得焦点的组件。 如果本地应用程序发生此焦点更改,在不同的VM或上下文中使用Java应用程序,或者没有其他组件,则返回null。
        结果
        其他组件涉及到焦点更改,或为null
        从以下版本开始:
        1.4
      • paramString

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