Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Listening to Text Components Events with an InputVerifier

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);   } }