FocusManager (Java Platform SE 8 )
Keywords: javax.swing.FocusManager class
Date: 2026-04-17

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.

  See Also:
    Focus Specification

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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 inherited from class java.awt.KeyboardFocusManager

      `BACKWARD_TRAVERSAL_KEYS, DOWN_CYCLE_TRAVERSAL_KEYS, FORWARD_TRAVERSAL_KEYS, UP_CYCLE_TRAVERSAL_KEYS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FocusManager()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and 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 inherited from class java.awt.DefaultKeyboardFocusManager

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

    - ### Methods inherited from 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 inherited from 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()`.
      See Also:
        `disableSwingFocusManager()`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.