Class DefaultKeyboardFocusManager
java.lang.Object
java.awt.KeyboardFocusManager
java.awt.DefaultKeyboardFocusManager
- All Implemented Interfaces:
KeyEventDispatcher, KeyEventPostProcessor
- Direct Known Subclasses:
FocusManager
The default KeyboardFocusManager for AWT applications. Focus traversal is
done in response to a Component's focus traversal keys, and using a
Container's FocusTraversalPolicy.
Please see How to Use the Focus Subsystem, a section in The Java Tutorial, and the Focus Specification for more information.
- Since:
- 1.4
- See Also:
-
Field Summary
Fields declared in class KeyboardFocusManager
BACKWARD_TRAVERSAL_KEYS, DOWN_CYCLE_TRAVERSAL_KEYS, FORWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYSModifier and TypeFieldDescriptionstatic final intThe identifier for the Backward focus traversal keys.static final intThe identifier for the Down Cycle focus traversal keys.static final intThe identifier for the Forward focus traversal keys.static final intThe identifier for the Up Cycle focus traversal keys. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddequeueKeyEvents(long after, Component untilFocused) Releases for normal dispatching to the current focus owner all KeyEvents which were enqueued because of a call toenqueueKeyEventswith the same timestamp and Component.protected voiddiscardKeyEvents(Component comp) Discards all KeyEvents which were enqueued because of one or more calls toenqueueKeyEventswith the specified Component, or one of its descendants.booleanThis method is called by the AWT event dispatcher requesting that the current KeyboardFocusManager dispatch the specified event on its behalf.booleanCalled bydispatchEventif no other KeyEventDispatcher in the dispatcher chain dispatched the KeyEvent, or if no other KeyEventDispatchers are registered.voiddownFocusCycle(Container aContainer) Moves the focus down one focus traversal cycle.protected voidenqueueKeyEvents(long after, Component untilFocused) Delays dispatching of KeyEvents until the specified Component becomes the focus owner.voidfocusNextComponent(Component aComponent) Focuses the Component after aComponent, typically based on a FocusTraversalPolicy.voidfocusPreviousComponent(Component aComponent) Focuses the Component before aComponent, typically based on a FocusTraversalPolicy.booleanThis method will be called bydispatchKeyEvent.voidprocessKeyEvent(Component focusedComponent, KeyEvent e) This method initiates a focus traversal operation if and only if the KeyEvent represents a focus traversal key for the specified focusedComponent.voidupFocusCycle(Component aComponent) Moves the focus up one focus traversal cycle.Methods declared in class KeyboardFocusManager
addKeyEventDispatcher, addKeyEventPostProcessor, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clearFocusOwner, clearGlobalFocusOwner, downFocusCycle, firePropertyChange, fireVetoableChange, focusNextComponent, focusPreviousComponent, getActiveWindow, getCurrentFocusCycleRoot, getCurrentKeyboardFocusManager, getDefaultFocusTraversalKeys, getDefaultFocusTraversalPolicy, getFocusedWindow, getFocusOwner, getGlobalActiveWindow, getGlobalCurrentFocusCycleRoot, getGlobalFocusedWindow, getGlobalFocusOwner, getGlobalPermanentFocusOwner, getKeyEventDispatchers, getKeyEventPostProcessors, getPermanentFocusOwner, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, redispatchEvent, removeKeyEventDispatcher, removeKeyEventPostProcessor, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener, setCurrentKeyboardFocusManager, setDefaultFocusTraversalKeys, setDefaultFocusTraversalPolicy, setGlobalActiveWindow, setGlobalCurrentFocusCycleRoot, setGlobalFocusedWindow, setGlobalFocusOwner, setGlobalPermanentFocusOwner, upFocusCycleModifier and TypeMethodDescriptionvoidaddKeyEventDispatcher(KeyEventDispatcher dispatcher) Adds a KeyEventDispatcher to this KeyboardFocusManager's dispatcher chain.voidaddKeyEventPostProcessor(KeyEventPostProcessor processor) Adds a KeyEventPostProcessor to this KeyboardFocusManager's post- processor chain.voidAdds a PropertyChangeListener to the listener list.voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener) Adds a PropertyChangeListener to the listener list for a specific property.voidAdds a VetoableChangeListener to the listener list.voidaddVetoableChangeListener(String propertyName, VetoableChangeListener listener) Adds a VetoableChangeListener to the listener list for a specific property.voidClears the focus owner at both the Java and native levels if the focus owner exists and resides in the same context as the calling thread, otherwise the method returns silently.voidClears the global focus owner at both the Java and native levels.final voidMoves the focus down one focus traversal cycle from the current focus owner, if and only if the current focus owner is a Container that is a focus cycle root.protected voidfirePropertyChange(String propertyName, Object oldValue, Object newValue) Fires a PropertyChangeEvent in response to a change in a bound property.protected voidfireVetoableChange(String propertyName, Object oldValue, Object newValue) Fires a PropertyChangeEvent in response to a change in a vetoable property.final voidFocuses the Component after the current focus owner.final voidFocuses the Component before the current focus owner.Returns the active Window, if the active Window is in the same context as the calling thread.Returns the current focus cycle root, if the current focus cycle root is in the same context as the calling thread.static KeyboardFocusManagerReturns the current KeyboardFocusManager instance for the calling thread's context.getDefaultFocusTraversalKeys(int id) Returns a Set of default focus traversal keys for a given traversal operation.Returns the default FocusTraversalPolicy.Returns the focused Window, if the focused Window is in the same context as the calling thread.Returns the focus owner, if the focus owner is in the same context as the calling thread.protected WindowReturns the active Window, even if the calling thread is in a different context than the active Window.protected ContainerReturns the current focus cycle root, even if the calling thread is in a different context than the current focus cycle root.protected WindowReturns the focused Window, even if the calling thread is in a different context than the focused Window.protected ComponentReturns the focus owner, even if the calling thread is in a different context than the focus owner.protected ComponentReturns the permanent focus owner, even if the calling thread is in a different context than the permanent focus owner.protected List<KeyEventDispatcher> Returns this KeyboardFocusManager's KeyEventDispatcher chain as a List.protected List<KeyEventPostProcessor> Returns this KeyboardFocusManager's KeyEventPostProcessor chain as a List.Returns the permanent focus owner, if the permanent focus owner is in the same context as the calling thread.Returns an array of all the property change listeners registered on this keyboard focus manager.getPropertyChangeListeners(String propertyName) Returns an array of all thePropertyChangeListeners associated with the named property.Returns an array of all the vetoable change listeners registered on this keyboard focus manager.getVetoableChangeListeners(String propertyName) Returns an array of all theVetoableChangeListeners associated with the named property.final voidredispatchEvent(Component target, AWTEvent e) Redispatches an AWTEvent in such a way that the AWT event dispatcher will not recursively request that the KeyboardFocusManager, or any installed KeyEventDispatchers, dispatch the event again.voidremoveKeyEventDispatcher(KeyEventDispatcher dispatcher) Removes a KeyEventDispatcher which was previously added to this KeyboardFocusManager's dispatcher chain.voidremoveKeyEventPostProcessor(KeyEventPostProcessor processor) Removes a previously added KeyEventPostProcessor from this KeyboardFocusManager's post-processor chain.voidRemoves a PropertyChangeListener from the listener list.voidremovePropertyChangeListener(String propertyName, PropertyChangeListener listener) Removes a PropertyChangeListener from the listener list for a specific property.voidRemoves a VetoableChangeListener from the listener list.voidremoveVetoableChangeListener(String propertyName, VetoableChangeListener listener) Removes a VetoableChangeListener from the listener list for a specific property.static voidsetCurrentKeyboardFocusManager(KeyboardFocusManager newManager) Sets the current KeyboardFocusManager instance for the calling thread's context.voidsetDefaultFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes) Sets the default focus traversal keys for a given traversal operation.voidsetDefaultFocusTraversalPolicy(FocusTraversalPolicy defaultPolicy) Sets the default FocusTraversalPolicy.protected voidsetGlobalActiveWindow(Window activeWindow) Sets the active Window.voidsetGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot) Sets the current focus cycle root.protected voidsetGlobalFocusedWindow(Window focusedWindow) Sets the focused Window.protected voidsetGlobalFocusOwner(Component focusOwner) Sets the focus owner.protected voidsetGlobalPermanentFocusOwner(Component permanentFocusOwner) Sets the permanent focus owner.final voidMoves the focus up one focus traversal cycle from the current focus owner.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Creates and returns a copy of this object.booleanIndicates whether some other object is "equal to" this one.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class<?> getClass()Returns the runtime class of thisObject.inthashCode()Returns a hash code value for this object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.toString()Returns a string representation of the object.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final voidwait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Constructor Details
-
DefaultKeyboardFocusManager
public DefaultKeyboardFocusManager()Constructs aDefaultKeyboardFocusManager.
-
-
Method Details
-
dispatchEvent
This method is called by the AWT event dispatcher requesting that the current KeyboardFocusManager dispatch the specified event on its behalf. DefaultKeyboardFocusManagers dispatch all FocusEvents, all WindowEvents related to focus, and all KeyEvents. These events are dispatched based on the KeyboardFocusManager's notion of the focus owner and the focused and active Windows, sometimes overriding the source of the specified AWTEvent. If this method returnsfalse, then the AWT event dispatcher will attempt to dispatch the event itself.- Specified by:
dispatchEventin classKeyboardFocusManager- Parameters:
e- the AWTEvent to be dispatched- Returns:
trueif this method dispatched the event;falseotherwise- See Also:
-
dispatchKeyEvent
Called bydispatchEventif no other KeyEventDispatcher in the dispatcher chain dispatched the KeyEvent, or if no other KeyEventDispatchers are registered. If the event has not been consumed, its target is enabled, and the focus owner is not null, this method dispatches the event to its target. This method will also subsequently dispatch the event to all registered KeyEventPostProcessors. After all this operations are finished, the event is passed to peers for processing.In all cases, this method returns
true, since DefaultKeyboardFocusManager is designed so that neitherdispatchEvent, nor the AWT event dispatcher, should take further action on the event in any situation.- Specified by:
dispatchKeyEventin interfaceKeyEventDispatcher- Specified by:
dispatchKeyEventin classKeyboardFocusManager- Parameters:
e- the KeyEvent to be dispatched- Returns:
true- See Also:
-
postProcessKeyEvent
This method will be called bydispatchKeyEvent. It will handle any unconsumed KeyEvents that map to an AWTMenuShortcutby consuming the event and activating the shortcut.- Specified by:
postProcessKeyEventin interfaceKeyEventPostProcessor- Specified by:
postProcessKeyEventin classKeyboardFocusManager- Parameters:
e- the KeyEvent to post-process- Returns:
true- See Also:
-
processKeyEvent
This method initiates a focus traversal operation if and only if the KeyEvent represents a focus traversal key for the specified focusedComponent. It is expected that focusedComponent is the current focus owner, although this need not be the case. If it is not, focus traversal will nevertheless proceed as if focusedComponent were the focus owner.- Specified by:
processKeyEventin classKeyboardFocusManager- Parameters:
focusedComponent- the Component that is the basis for a focus traversal operation if the specified event represents a focus traversal key for the Componente- the event that may represent a focus traversal key
-
enqueueKeyEvents
Delays dispatching of KeyEvents until the specified Component becomes the focus owner. KeyEvents with timestamps later than the specified timestamp will be enqueued until the specified Component receives a FOCUS_GAINED event, or the AWT cancels the delay request by invokingdequeueKeyEventsordiscardKeyEvents.- Specified by:
enqueueKeyEventsin classKeyboardFocusManager- Parameters:
after- timestamp of current event, or the current, system time if the current event has no timestamp, or the AWT cannot determine which event is currently being handleduntilFocused- Component which will receive a FOCUS_GAINED event before any pending KeyEvents- See Also:
-
dequeueKeyEvents
Releases for normal dispatching to the current focus owner all KeyEvents which were enqueued because of a call toenqueueKeyEventswith the same timestamp and Component. If the given timestamp is less than zero, the outstanding enqueue request for the given Component with the oldest timestamp (if any) should be cancelled.- Specified by:
dequeueKeyEventsin classKeyboardFocusManager- Parameters:
after- the timestamp specified in the call toenqueueKeyEvents, or any value < 0untilFocused- the Component specified in the call toenqueueKeyEvents- See Also:
-
discardKeyEvents
Discards all KeyEvents which were enqueued because of one or more calls toenqueueKeyEventswith the specified Component, or one of its descendants.- Specified by:
discardKeyEventsin classKeyboardFocusManager- Parameters:
comp- the Component specified in one or more calls toenqueueKeyEvents, or a parent of such a Component- See Also:
-
focusPreviousComponent
Focuses the Component before aComponent, typically based on a FocusTraversalPolicy.- Specified by:
focusPreviousComponentin classKeyboardFocusManager- Parameters:
aComponent- the Component that is the basis for the focus traversal operation- See Also:
-
focusNextComponent
Focuses the Component after aComponent, typically based on a FocusTraversalPolicy.- Specified by:
focusNextComponentin classKeyboardFocusManager- Parameters:
aComponent- the Component that is the basis for the focus traversal operation- See Also:
-
upFocusCycle
Moves the focus up one focus traversal cycle. Typically, the focus owner is set to aComponent's focus cycle root, and the current focus cycle root is set to the new focus owner's focus cycle root. If, however, aComponent's focus cycle root is a Window, then the focus owner is set to the focus cycle root's default Component to focus, and the current focus cycle root is unchanged.- Specified by:
upFocusCyclein classKeyboardFocusManager- Parameters:
aComponent- the Component that is the basis for the focus traversal operation- See Also:
-
downFocusCycle
Moves the focus down one focus traversal cycle. If aContainer is a focus cycle root, then the focus owner is set to aContainer's default Component to focus, and the current focus cycle root is set to aContainer. If aContainer is not a focus cycle root, then no focus traversal operation occurs.- Specified by:
downFocusCyclein classKeyboardFocusManager- Parameters:
aContainer- the Container that is the basis for the focus traversal operation- See Also:
-