Find the previous focusable component : Focus Event « Event « Java

Find the previous focusable component


import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.FocusTraversalPolicy;
import java.awt.KeyboardFocusManager;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Main {
  public static void main(String[] argv) {
    JFrame frame = new JFrame();
    JButton component1 = new JButton("1");
    JButton component2 = new JButton("2");
    JButton component3 = new JButton("3");

    frame.setLayout(new FlowLayout());



  public static Component findPrevFocus() {
    Component c = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
    Container root = c.getFocusCycleRootAncestor();

    FocusTraversalPolicy policy = root.getFocusTraversalPolicy();
    Component prevFocus = policy.getComponentBefore(root, c);
    if (prevFocus == null) {
      prevFocus = policy.getDefaultComponent(root);
    return prevFocus;


Related examples in the same category

1.Setting Focus Traversal Keys in a Component
2.Change the forward focus traversal keys for a component
3.JComponent.setFocusTraversalKeys(int arg0, Set arg1)
5.Setting Focus Traversal Keys for the Entire Application
6.Changes the focus traversal keys for the entire application.
7.Change the backward focus traversal keys for the application
10.Remove all forward focus traversal keys for the application
11.Remove all backward focus traversal keys for the application
12.Modify a component: press space bar or F2 to move focus to next focusable component.
13.Press shift space or shift F2 to move the focus to the previous focusable component.
14.Setting the Initial Focused Component in a Window
15.Finding the Next Focusable Component
16.Determining If a Focus Lost Is Temporary or Permanent
17.Determining the Opposite Component of a Focus Event
18.Validating a JTextField When Permanently Losing the Focus
19.Removing the Focus from the Application
20.Use Focus Events in Swing
21.Null is returned if none of the components in this application has the focus
22.Null is returned if none of the windows in this application has the focus
23.Listening to All Focus Changes Between Components and windows
24.Preventing a Component from Gaining the Focus