Básicamente existen dos formas de validar los datos ingresados por el usuario en un formulario:

  • Una vez que ha ingresado todos los datos, donde lo ideal es hacerlo con expresiones regulares
  • Mientras se van ingresando los datos, manejando los eventos del teclado mediante la interfaz KeyAdapter y el método keyReleased.

Respecto a esta última opción, de la mano de Casidiablo nos llega parte del siguiente código:

  • En principio, debemos contar en nuestro código con una caja de texto:

textIngreso = new javax.swing.JTextField();

  • Mediante el método addKeyListener le agregaremos un handler para el evento keyReleased:

textIngreso.addKeyListener(new java.awt.event.KeyAdapter() {
       public void keyReleased(java.awt.event.KeyEvent evt) {
            textIngresoKeyReleased(evt)
       }
   });

  • Nuestro método textIngresoKeyReleased será el encargado de validar el caracter ingresado y de emitir un beep al ingreso de un caracter no válido.

private void textIngresoKeyReleased(java.awt.event.KeyEvent evt) {                                       
    Character caracter = new Character(evt.getKeyChar());
    if (!esValido(caracter)) {
        String texto="";
        for (int i=0; i<textIngreso.getText().length();i++) {
            if (esValido(new Character(textIngreso.getText().charAt(i) )) )
                    texto += textIngreso.getText().charAt(i);
        }
        textIngreso.setText(texto);
        getToolkit().beep();
    }
}

  • Finalmente, definimos el método esValido, invocado desde el método anterior

private boolean esValido(Character caracter) {
    char c =caracter.charValue();
    if ( !(Character.isLetter(c)) || c==' ' || c==8 ) {  /* aceptamos el ingreso de espacios o el backspace*/
        return false;
    } else {
        return true;
    }
}

Vía: Casidiablo