|  
 
 
 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());
 frame.add(component1);
 frame.add(component2);
 frame.add(component3);
 
 frame.pack();
 frame.setVisible(true);
 
 System.out.println(findPrevFocus().getName());
 }
 
 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;
 }
 }
 
 
 
 |