java.lang.Object
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ComponentEvent
java.awt.event.FocusEvent
- 所有已实现的接口:
-
Serializable
表示组件已获得或失去输入焦点的低级事件。此低级事件由组件(例如TextField)生成。事件传递给每个使用组件的
addFocusListener
方法注册接收此类事件的FocusListener
或FocusAdapter
对象。(FocusAdapter
对象实现FocusListener
接口。)每个这样的监听器对象在事件发生时都会收到此FocusEvent
。
焦点事件有两个级别:永久和临时。永久焦点更改事件发生在焦点直接从一个组件移动到另一个组件时,例如通过调用requestFocus()或用户使用TAB键遍历组件。临时焦点更改事件发生在焦点暂时丢失为组件的间接结果时,例如窗口停用或滚动条拖动。在这种情况下,一旦该操作完成,或者对于窗口停用的情况,当窗口重新激活时,原始焦点状态将自动恢复。永久和临时焦点事件使用FOCUS_GAINED和FOCUS_LOST事件ID进行传递;可以使用isTemporary()方法在事件中区分级别。
每个FocusEvent
记录其原因 - 生成此事件的原因。原因在焦点事件创建期间分配,并且可以通过调用getCause()
来检索。
如果任何特定FocusEvent
实例的id
参数不在从FOCUS_FIRST
到FOCUS_LAST
的范围内,则将导致未指定的行为。
- 自:
- 1.1
- 参见:
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
用于焦点事件的ID范围中的第一个数字。static final int
此事件指示组件现在是焦点所有者。static final int
用于焦点事件的ID范围中的最后一个数字。static final int
此事件指示组件不再是焦点所有者。Fields declared in class java.awt.event.ComponentEvent
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN
Fields declared in class java.awt.AWTEvent
ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id, INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX, TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASK
Fields declared in class java.util.EventObject
source
-
Constructor Summary
ConstructorDescriptionFocusEvent
(Component source, int id) 构造一个FocusEvent
对象,并将其标识为焦点永久更改。FocusEvent
(Component source, int id, boolean temporary) 构造一个FocusEvent
对象,并标识更改是否为临时。FocusEvent
(Component source, int id, boolean temporary, Component opposite) 使用指定的临时状态、相反的Component
和Cause.UNKNOWN
原因构造一个FocusEvent
对象。FocusEvent
(Component source, int id, boolean temporary, Component opposite, FocusEvent.Cause cause) 使用指定的临时状态、相反的Component
和原因构造一个FocusEvent
对象。 -
Method Summary
Modifier and TypeMethodDescriptionfinal FocusEvent.Cause
getCause()
返回事件原因。返回此焦点更改中涉及的另一个组件。boolean
将焦点更改事件标识为临时或永久。返回标识此事件的参数字符串。Methods declared in class java.awt.event.ComponentEvent
getComponent
Methods declared in class java.util.EventObject
getSource
-
Field Details
-
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此事件指示组件现在是焦点所有者。- 参见:
-
FOCUS_LOST
public static final int FOCUS_LOST此事件指示组件不再是焦点所有者。- 参见:
-
-
Constructor Details
-
FocusEvent
使用指定的临时状态、相反的Component
和Cause.UNKNOWN
原因构造一个FocusEvent
对象。相反的Component
是此焦点更改中涉及的另一个Component
。对于FOCUS_GAINED
事件,这是失去焦点的Component
。对于FOCUS_LOST
事件,这是获得焦点的Component
。如果此焦点更改发生在本机应用程序、不同VM中的Java应用程序或没有其他Component
的情况下,则相反的Component
为null
。如果
source
为null
,则此方法会抛出IllegalArgumentException
。- 参数:
-
source
- 生成事件的Component
-
id
- 指示事件类型的整数。有关允许值的信息,请参阅FocusEvent
的类描述 -
temporary
- 如果焦点更改是临时的,则等于true
;否则为false
-
opposite
- 参与焦点更改的另一个组件,或null
- 抛出:
-
IllegalArgumentException
- 如果source
等于null
- 自:
- 1.4
- 参见:
-
FocusEvent
public FocusEvent(Component source, int id, boolean temporary, Component opposite, FocusEvent.Cause cause) 使用指定的临时状态、相反的Component
和原因构造一个FocusEvent
对象。相反的Component
是此焦点更改中涉及的另一个Component
。对于FOCUS_GAINED
事件,这是失去焦点的Component
。对于FOCUS_LOST
事件,这是获得焦点的Component
。如果此焦点更改发生在本机应用程序、不同VM中的Java应用程序或没有其他Component
的情况下,则相反的Component
为null
。如果
source
或cause
为null
,则此方法会抛出IllegalArgumentException
。- 参数:
-
source
- 生成事件的Component
-
id
- 指示事件类型的整数。有关允许值的信息,请参阅FocusEvent
的类描述 -
temporary
- 如果焦点更改是临时的,则等于true
;否则为false
-
opposite
- 参与焦点更改的另一个组件,或null
-
cause
- 焦点事件原因 - 抛出:
-
IllegalArgumentException
- 如果source
等于null
或如果cause
等于null
- 自:
- 9
- 参见:
-
FocusEvent
构造一个FocusEvent
对象,并标识更改是否为临时。如果
source
为null
,则此方法会抛出IllegalArgumentException
。- 参数:
-
source
- 生成事件的Component
-
id
- 指示事件类型的整数。有关允许值的信息,请参阅FocusEvent
的类描述 -
temporary
- 如果焦点更改是临时的,则等于true
;否则为false
- 抛出:
-
IllegalArgumentException
- 如果source
等于null
- 参见:
-
FocusEvent
构造一个FocusEvent
对象,并将其标识为焦点永久更改。如果
source
为null
,则此方法会抛出IllegalArgumentException
。- 参数:
-
source
- 触发事件的Component
-
id
- 表示事件类型的整数。有关允许值的信息,请参阅FocusEvent
的类描述 - 抛出:
-
IllegalArgumentException
- 如果source
等于null
- 参见:
-
-
Method Details
-
isTemporary
public boolean isTemporary()将焦点变更事件标识为临时或永久。- 返回:
-
如果焦点变更是临时的,则返回
true
; 否则返回false
-
getOppositeComponent
返回与此焦点变更相关的另一个Component。对于FOCUS_GAINED事件,这是失去焦点的Component。对于FOCUS_LOST事件,这是获得焦点的Component。如果此焦点变更发生在本机应用程序中,与不同VM或上下文中的Java应用程序中,或者没有其他Component中,则返回null。- 返回:
- 与焦点变更相关的另一个Component,或null
- 自:
- 1.4
-
paramString
返回标识此事件的参数字符串。此方法对于事件记录和调试很有用。- 覆盖:
-
paramString
在类ComponentEvent
- 返回:
- 一个标识事件及其属性的字符串
-
getCause
返回事件原因。- 返回:
- FocusEvent.Cause值之一
- 自:
- 9
-