Swing Java Tutorial

Do field-level validation of a JTextField.
Before focus moves out of a text component, the verifier runs.
If not valid, the verifier rejects the change and keeps input focus within the given component.

import java.awt.BorderLayout;
import javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.text.JTextComponent;
public class AddingActionCommandActionListenerSample {
  public static void main(String args[]) {
    final JFrame frame = new JFrame("Default Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JTextField textField = new JTextField();
    frame.add(textField, BorderLayout.NORTH);
    frame.add(new JTextField(), BorderLayout.SOUTH);
    InputVerifier verifier = new InputVerifier() {
      public boolean verify(JComponent input) {
        final JTextComponent source = (JTextComponent)input;
        String text = source.getText();
        if ((text.length() != 0) && !(text.equals("Exit"))) {
              JOptionPane.showMessageDialog (frame, "Can't leave.",
                "Error Dialog", JOptionPane.ERROR_MESSAGE);
          return false;
        } else {
          return true;
        }
      }
    };
    textField.setInputVerifier(verifier);
    
    frame.setSize(250, 150);
    frame.setVisible(true);
  }
}