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
Modifier and Type
Field
Description
`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.

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

`BACKWARD_TRAVERSAL_KEYS, DOWN_CYCLE_TRAVERSAL_KEYS, FORWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYS`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`FocusManager()`
Constructor for subclasses to call.

## Method Summary

Modifier and Type
Method
Description
`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 Details

### 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 Details

### FocusManager

protected FocusManager()
Constructor for subclasses to call.

## Method Details

### 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()`