| 
     
   
 
import java.awt.Component; 
import java.awt.GridLayout; 
import java.awt.KeyboardFocusManager; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 
 
import javax.swing.JButton; 
import javax.swing.JFrame; 
 
public class MainClass { 
 
  public static void main(String args[]) { 
    JFrame frame = new JFrame("Focus Sample"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 
    ActionListener actionListener = new ActionFocusMover(); 
    MouseListener mouseListener = new MouseEnterFocusMover(); 
 
    frame.setLayout(new GridLayout(3, 3)); 
    for (int i = 1; i < 10; i++) { 
      JButton button = new JButton(Integer.toString(i)); 
      button.addActionListener(actionListener); 
      button.addMouseListener(mouseListener); 
      if ((i % 2) != 0) { 
        button.setFocusable(false); 
      } 
      frame.add(button); 
    } 
 
    frame.setSize(300, 200); 
    frame.setVisible(true); 
  } 
} 
 
class ActionFocusMover implements ActionListener { 
  public void actionPerformed(ActionEvent actionEvent) { 
    KeyboardFocusManager manager = KeyboardFocusManager 
        .getCurrentKeyboardFocusManager(); 
    manager.focusNextComponent(); 
  } 
} 
 
class MouseEnterFocusMover extends MouseAdapter { 
  public void mouseEntered(MouseEvent mouseEvent) { 
    Component component = mouseEvent.getComponent(); 
    if (!component.hasFocus()) { 
      component.requestFocusInWindow(); 
    } 
  } 
} 
 
            
          
     
   
    
    |