- 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 classFocusEvent.Cause这个枚举代表了一个FocusEvent的原因 - 其发生的原因。
-
Field Summary
Fields Modifier and Type Field 描述 static intFOCUS_FIRST用于焦点事件的ids范围中的第一个数字。static intFOCUS_GAINED此事件表示组件现在是焦点所有者。static intFOCUS_LAST用于焦点事件的ids范围中的最后一个数字。static intFOCUS_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.CausegetCause()返回事件原因。ComponentgetOppositeComponent()返回此焦点更改中涉及的其他组件。booleanisTemporary()将焦点更改事件标识为临时或永久。StringparamString()返回标识此事件的参数字符串。-
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
-
-