模块 java.desktop

类 FocusEvent

所有已实现的接口:
Serializable

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

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

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

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

自从:
1.1
参见:
  • 字段详细信息

    • 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
      此事件表示 Component 不再是焦点所有者。
      参见:
  • 构造方法详细信息

    • 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

      如果 sourcenull,此方法将抛出 IllegalArgumentException

      参数:
      source - 发起事件的 Component
      id - 表示事件类型的整数。有关允许值的信息,请参阅 FocusEvent 的类描述
      temporary - 如果焦点变化是暂时的,则等于 truefalse否则
      opposite - 涉及焦点更改的其他组件,或 null
      抛出:
      IllegalArgumentException - 如果 source 等于 null
      自从:
      1.4
      参见:
    • 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

      如果 sourcecausenull,则此方法抛出 IllegalArgumentException

      参数:
      source - 发起事件的 Component
      id - 表示事件类型的整数。有关允许值的信息,请参阅 FocusEvent 的类描述
      temporary - 如果焦点变化是暂时的,则等于 truefalse否则
      opposite - 涉及焦点更改的其他组件,或 null
      cause - 焦点事件原因。
      抛出:
      IllegalArgumentException - 如果 source 等于 null 或者如果 cause 等于 null
      自从:
      9
      参见:
    • FocusEvent

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

      如果 sourcenull,此方法将抛出 IllegalArgumentException

      参数:
      source - 发起事件的 Component
      id - 表示事件类型的整数。有关允许值的信息,请参阅 FocusEvent 的类描述
      temporary - 如果焦点变化是暂时的,则等于 truefalse否则
      抛出:
      IllegalArgumentException - 如果 source 等于 null
      参见:
    • FocusEvent

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

      如果 sourcenull,此方法将抛出 IllegalArgumentException

      参数:
      source - 发起事件的 Component
      id - 表示事件类型的整数。有关允许值的信息,请参阅 FocusEvent 的类描述
      抛出:
      IllegalArgumentException - 如果 source 等于 null
      参见:
  • 方法详情

    • isTemporary

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

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

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

      public final FocusEvent.Cause  getCause()
      返回事件原因。
      返回:
      FocusEvent.Cause 值之一
      自从:
      9