event
Focus change example
In this example we are going to see how to change focus in a Java Application.
All you have to do is:
- Create a new
ActionListener. - Override the
actionPerformedmethod. - When this method fires up use the
transferFocusmethod to transfer the focus to a specific component. - Create a class that extends
MouseAdapter. - Override the mouseEntered method
- When this method fires up use the
requestFocusmethod in order to give the focus to the component that is pointed by the mouse.
Let’s see the code snippets that follow:
package com.javacodegeeks.snippets.desktop;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Main {
public static void main(String args[]) {
JFrame jFrame = new JFrame("Change Focus Demo");
ActionListener actListner = new FocusMove();
MouseListener mListener = new MouseFocusMove();
Container cPane = jFrame.getContentPane();
cPane.setLayout(new GridLayout(4, 4));
for (int c = 1; c < 10; c++) {
JButton jButton = new JButton("" + c);
jButton.addActionListener(actListner);
jButton.addMouseListener(mListener);
if ((c % 2) != 0) {
jButton.setRequestFocusEnabled(false);
}
cPane.add(jButton);
}
jFrame.setSize(400, 300);
jFrame.setVisible(true);
}
}
class FocusMove implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
Object src = event.getSource();
if (src instanceof Component) {
Component comp = (Component) src;
comp.transferFocus();
}
}
}
class MouseFocusMove extends MouseAdapter {
@Override
public void mouseEntered(MouseEvent event) {
Component cmp = event.getComponent();
if (!cmp.hasFocus()) {
cmp.requestFocus();
}
}
}This was an example on how to handle focus change in Java.

