FileDocCategorySizeDatePackage
FocusEvent.javaAPI DocJava SE 5 API8396Fri Aug 26 14:56:50 BST 2005java.awt.event

FocusEvent

public class FocusEvent extends ComponentEvent
A low-level event which indicates that a Component has gained or lost the input focus. This low-level event is generated by a Component (such as a TextField). The event is passed to every FocusListener or FocusAdapter object which registered to receive such events using the Component's addFocusListener method. ( FocusAdapter objects implement the FocusListener interface.) Each such listener object gets this FocusEvent when the event occurs.

There are two levels of focus events: permanent and temporary. Permanent focus change events occur when focus is directly moved from one Component to another, such as through a call to requestFocus() or as the user uses the TAB key to traverse Components. Temporary focus change events occur when focus is temporarily lost for a Component as the indirect result of another operation, such as Window deactivation or a Scrollbar drag. In this case, the original focus state will automatically be restored once that operation is finished, or, for the case of Window deactivation, when the Window is reactivated. Both permanent and temporary focus events are delivered using the FOCUS_GAINED and FOCUS_LOST event ids; the level may be distinguished in the event using the isTemporary() method.

see
FocusAdapter
see
FocusListener
see
Tutorial: Writing a Focus Listener
see
Reference: The Java Class Libraries (update file)
author
Carl Quinn
author
Amy Fowler
version
1.30 12/19/03
since
1.1

Fields Summary
public static final int
FOCUS_FIRST
The first number in the range of ids used for focus events.
public static final int
FOCUS_LAST
The last number in the range of ids used for focus events.
public static final int
FOCUS_GAINED
This event indicates that the Component is now the focus owner.
public static final int
FOCUS_LOST
This event indicates that the Component is no longer the focus owner.
boolean
temporary
A focus event can have two different levels, permanent and temporary. It will be set to true if some operation takes away the focus temporarily and intends on getting it back once the event is completed. Otherwise it will be set to false.
transient Component
opposite
The other Component involved in this focus change. For a FOCUS_GAINED event, this is the Component that lost focus. For a FOCUS_LOST event, this is the Component that gained focus. If this focus change occurs with a native application, a Java application in a different VM, or with no other Component, then the opposite Component is null.
private static final long
serialVersionUID
Constructors Summary
public FocusEvent(Component source, int id, boolean temporary, Component opposite)
Constructs a FocusEvent object with the specified temporary state and opposite Component. The opposite Component is the other Component involved in this focus change. For a FOCUS_GAINED event, this is the Component that lost focus. For a FOCUS_LOST event, this is the Component that gained focus. If this focus change occurs with a native application, with a Java application in a different VM, or with no other Component, then the opposite Component is null.

Note that passing in an invalid id results in unspecified behavior. This method throws an IllegalArgumentException if source is null.

param
source the Component that originated the event
param
id FOCUS_GAINED or FOCUS_LOST
param
temporary true if the focus change is temporary; false otherwise
param
opposite the other Component involved in the focus change, or null
throws
IllegalArgumentException if source is null


                                                                                                                                                                                                     
          
                        
        super(source, id);
	this.temporary = temporary;
	this.opposite = opposite;
    
public FocusEvent(Component source, int id, boolean temporary)
Constructs a FocusEvent object and identifies whether or not the change is temporary.

Note that passing in an invalid id results in unspecified behavior. This method throws an IllegalArgumentException if source is null.

param
source the Component that originated the event
param
id an integer indicating the type of event
param
temporary true if the focus change is temporary; false otherwise
throws
IllegalArgumentException if source is null

        this(source, id, temporary, null);
    
public FocusEvent(Component source, int id)
Constructs a FocusEvent object and identifies it as a permanent change in focus.

Note that passing in an invalid id results in unspecified behavior. This method throws an IllegalArgumentException if source is null.

param
source the Component that originated the event
param
id an integer indicating the type of event
throws
IllegalArgumentException if source is null

        this(source, id, false);
    
Methods Summary
public java.awt.ComponentgetOppositeComponent()
Returns the other Component involved in this focus change. For a FOCUS_GAINED event, this is the Component that lost focus. For a FOCUS_LOST event, this is the Component that gained focus. If this focus change occurs with a native application, with a Java application in a different VM or context, or with no other Component, then null is returned.

return
the other Component involved in the focus change, or null
since
1.4

        if (opposite == null) {
	    return null;
	}

        return (SunToolkit.targetToAppContext(opposite) ==
		AppContext.getAppContext())
	    ? opposite
	    : null;
    
public booleanisTemporary()
Identifies the focus change event as temporary or permanent.

return
true if the focus change is temporary; false otherwise

        return temporary;
    
public java.lang.StringparamString()
Returns a parameter string identifying this event. This method is useful for event-logging and for debugging.

return
a string identifying the event and its attributes

        String typeStr;
        switch(id) {
          case FOCUS_GAINED:
              typeStr = "FOCUS_GAINED";
              break;
          case FOCUS_LOST:
              typeStr = "FOCUS_LOST";
              break;
          default:
              typeStr = "unknown type";
        }
	return typeStr + (temporary ? ",temporary" : ",permanent") +
	    ",opposite=" + getOppositeComponent();