Module java.desktop
Package javax.swing

## Class FocusManager

- java.lang.Object
- - java.awt.KeyboardFocusManager
  - - java.awt.DefaultKeyboardFocusManager
    - - javax.swing.FocusManager

All Implemented Interfaces:
  `KeyEventDispatcher`, `KeyEventPostProcessor`

Direct Known Subclasses:
  `DefaultFocusManager`

    public abstract class FocusManager
    extends DefaultKeyboardFocusManager

This class has been obsoleted by the 1.4 focus APIs. While client code may still use this class, developers are strongly encouraged to use `java.awt.KeyboardFocusManager` and `java.awt.DefaultKeyboardFocusManager` instead.

Please see How to Use the Focus Subsystem, a section in The Java Tutorial, and the Focus Specification for more information.

Since:
  1.2
See Also:
  Focus Specification

### Field Summary

Fields
`static String` `FOCUS_MANAGER_CLASS_PROPERTY` This field is obsolete, and its use is discouraged since its specification is incompatible with the 1.4 focus APIs.

### Fields declared in class java.awt.KeyboardFocusManager

`BACKWARD_TRAVERSAL_KEYS, DOWN_CYCLE_TRAVERSAL_KEYS, FORWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYS`

### Constructor Summary

Constructors
`FocusManager()`

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static void` `disableSwingFocusManager()` Deprecated. as of 1.4, replaced by `KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy)`
`static FocusManager` `getCurrentManager()` Returns the current `KeyboardFocusManager` instance for the calling thread's context.
`static boolean` `isFocusManagerEnabled()` Deprecated. As of 1.4, replaced by `KeyboardFocusManager.getDefaultFocusTraversalPolicy()`
`static void` `setCurrentManager​(FocusManager aFocusManager)` Sets the current `KeyboardFocusManager` instance for the calling thread's context.

### Methods declared in class java.awt.DefaultKeyboardFocusManager

`dequeueKeyEvents, discardKeyEvents, dispatchEvent, dispatchKeyEvent, downFocusCycle, enqueueKeyEvents, focusNextComponent, focusPreviousComponent, postProcessKeyEvent, processKeyEvent, upFocusCycle`

### Methods declared in class java.awt.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, upFocusCycle`

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### FOCUS_MANAGER_CLASS_PROPERTY

    public static final String FOCUS_MANAGER_CLASS_PROPERTY

This field is obsolete, and its use is discouraged since its specification is incompatible with the 1.4 focus APIs. The current FocusManager is no longer a property of the UI. Client code must query for the current FocusManager using `KeyboardFocusManager.getCurrentKeyboardFocusManager()`. See the Focus Specification for more information.

See Also:
  `KeyboardFocusManager.getCurrentKeyboardFocusManager()`, Focus Specification, Constant Field Values

### Constructor Detail

#### FocusManager

    public FocusManager()

### Method Detail

#### getCurrentManager

    public static FocusManager getCurrentManager()

Returns the current `KeyboardFocusManager` instance for the calling thread's context.

Returns:
  this thread's context's `KeyboardFocusManager`
See Also:
  `setCurrentManager(javax.swing.FocusManager)`

#### setCurrentManager

    public static void setCurrentManager​(FocusManager aFocusManager)
                                  throws SecurityException

Sets the current `KeyboardFocusManager` instance for the calling thread's context. If `null` is specified, then the current `KeyboardFocusManager` is replaced with a new instance of `DefaultKeyboardFocusManager`.

If a `SecurityManager` is installed, the calling thread must be granted the `AWTPermission` "replaceKeyboardFocusManager" in order to replace the the current `KeyboardFocusManager`. If this permission is not granted, this method will throw a `SecurityException`, and the current `KeyboardFocusManager` will be unchanged.

Parameters:
  `aFocusManager` - the new `KeyboardFocusManager` for this thread's context
Throws:
  `SecurityException` - if the calling thread does not have permission to replace the current `KeyboardFocusManager`
See Also:
  `getCurrentManager()`, `DefaultKeyboardFocusManager`

#### disableSwingFocusManager

    @Deprecated
    public static void disableSwingFocusManager()

Deprecated.
as of 1.4, replaced by `KeyboardFocusManager.setDefaultFocusTraversalPolicy(FocusTraversalPolicy)`
Changes the current `KeyboardFocusManager`'s default `FocusTraversalPolicy` to `DefaultFocusTraversalPolicy`.

See Also:
  `DefaultFocusTraversalPolicy`, `KeyboardFocusManager.setDefaultFocusTraversalPolicy(java.awt.FocusTraversalPolicy)`

#### isFocusManagerEnabled

    @Deprecated
    public static boolean isFocusManagerEnabled()

Deprecated.
As of 1.4, replaced by `KeyboardFocusManager.getDefaultFocusTraversalPolicy()`
Returns whether the application has invoked `disableSwingFocusManager()`.

Returns:
  `true` if focus manager is enabled.
See Also:
  `disableSwingFocusManager()`