- java.lang.Object
-
- java.util.EventObject
-
- java.awt.AWTEvent
-
- java.awt.event.ComponentEvent
-
- java.awt.event.FocusEvent
-
- All Implemented Interfaces:
-
Serializable
public class FocusEvent extends ComponentEvent
指示组件已经获得或丢失了输入焦点的低级事件。 此低级别事件由组件(如TextField)生成。 事件被传递给使用组件的addFocusListener
方法注册接收此类事件的每个FocusListener
或FocusAdapter
对象。 (FocusAdapter
对象实现FocusListener
接口。)每个这样的侦听器对象在事件发生时得到这个FocusEvent
。焦点事件有两个层次:永久性和临时性。 当焦点直接从一个组件移动到另一个组件时,例如通过调用requestFocus()或用户使用TAB键遍历组件时,会发生永久性焦点更改事件。 当组件临时丢失焦点作为另一个操作的间接结果(如窗口停用或滚动条拖动)时,会发生临时焦点更改事件。 在这种情况下,一旦操作完成,原始对焦状态就会自动恢复,或者在Windows停用的情况下,当窗口重新激活时。 永久和临时焦点事件都使用FOCUS_GAINED和FOCUS_LOST事件ID进行传递; 在使用isTemporary()方法的情况下,可以区分该级别。
每
FocusEvent
记录它的原因 - 这个事件被生成的原因。 原因是在焦点事件创建期间分配的,可以通过调用getCause()
来检索。如果任何特定的
FocusEvent
实例的id
参数不在从FOCUS_FIRST
到FOCUS_LAST
的范围内,将会引起未指定的行为。- 从以下版本开始:
- 1.1
- 另请参见:
-
FocusAdapter
,FocusListener
, Tutorial: Writing a Focus Listener , Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
FocusEvent.Cause
这个枚举代表了一个FocusEvent
的原因 - 其发生的原因。
-
Field Summary
Fields Modifier and Type Field 描述 static int
FOCUS_FIRST
用于焦点事件的ids范围中的第一个数字。static int
FOCUS_GAINED
此事件表示组件现在是焦点所有者。static int
FOCUS_LAST
用于焦点事件的ids范围中的最后一个数字。static int
FOCUS_LOST
此事件表示组件不再是焦点所有者。-
Fields inherited from 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 inherited from class java.awt.event.ComponentEvent
COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN
-
Fields inherited from class java.util.EventObject
source
-
-
构造方法摘要
构造方法 Constructor 描述 FocusEvent(Component source, int id)
构造一个FocusEvent
对象,并将其标识为焦点的永久性更改。FocusEvent(Component source, int id, boolean temporary)
构造一个FocusEvent
对象,并确定更改是否是临时的。FocusEvent(Component source, int id, boolean temporary, Component opposite)
构造一个具有指定临时状态的FocusEvent
对象,与Component
相反,Cause.UNKNOWN
原因。FocusEvent(Component source, int id, boolean temporary, Component opposite, FocusEvent.Cause cause)
构造一个FocusEvent
对象,具有指定的临时状态,相反的是Component
及其原因。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 FocusEvent.Cause
getCause()
返回事件原因。Component
getOppositeComponent()
返回此焦点更改中涉及的其他组件。boolean
isTemporary()
将焦点更改事件标识为临时或永久。String
paramString()
返回标识此事件的参数字符串。-
Methods inherited from class java.awt.event.ComponentEvent
getComponent
-
Methods inherited from class java.util.EventObject
getSource
-
-
-
-
字段详细信息
-
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
,那么相反的Component
是null
。此方法抛出
IllegalArgumentException
如果source
为null
。- 参数
-
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
,则相反的Component
是null
。此方法抛出
IllegalArgumentException
如果source
或cause
是null
。- 参数
-
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
如果source
为null
。- 参数
-
source
- 发起事件的Component
-
id
- 指示事件类型的整数。 有关允许值的信息,请参阅FocusEvent
的类说明 -
temporary
- 如果焦点变化是暂时的,则等于true
;false
否则 - 异常
-
IllegalArgumentException
- 如果source
等于null
- 另请参见:
-
EventObject.getSource()
,AWTEvent.getID()
,isTemporary()
-
FocusEvent
public FocusEvent(Component source, int id)
构造一个FocusEvent
对象,并将其标识为焦点的永久性更改。此方法抛出
IllegalArgumentException
如果source
为null
。- 参数
-
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()
返回标识此事件的参数字符串。 此方法对于事件记录和调试很有用。- 重写:
-
paramString
在ComponentEvent
- 结果
- 标识事件及其属性的字符串
-
getCause
public final FocusEvent.Cause getCause()
返回事件原因。- 结果
-
一个
FocusEvent.Cause
值 - 从以下版本开始:
- 9
-
-