Validación de JTextField en Java

Pues aquí viene mi segundo post  


Resulta que soy ingeniero en sistemas y me encanta la programación. Recientemente tuve la necesidad de validar unos campos de texto en Java (JTextField) y muy a pesar de que es común que lleve tareas de ese tipo a cabo, casi siempre termino por confundir las funciones o se me olvidan. 


El fin de este post es compartir un poco de lo que he ido aprendiendo, estoy seguro de que a más de uno le será de utilidad.

Pues bien, para este tutorial utilizaré NetBeans como IDE y para comenzar mostraré cómo quedó el formulario:

Los campos se nombraron de la siguiente manera respectivamente:

- txtTexto
- txtNumeros
- txtSinEspacios
- txt5Caracteres

y como sus nombres indican el primero de ellos sólo aceptará letras, el segundo sólo números, el tercero no aceptará espacios,  y el último estará limitado a un máximo de 5 caracteres.

Para este caso se debe utilizar el listener KeyTyped. Cuando se pulsa una tacla ésta es mandada al sistema operativo, luego mediante este escuchador se accede a tal código para poder procesarlo en nuestro programa, esto a diferencia de KeyPressed y KeyReleased que sirven únicamente para escuchar cuando una tecla se pulsa o se suelta. (Al menos así lo entiendo, si no es así favor de corregirme  .

Una vez aclarado esto, hay que asignarle a cada campo su escuchador, para ello hay que seguir los pasos siguientes:

Clic derecho en el campo>Eventos>Key>KeyTyped

Eso nos llevará al método de escucha donde se colocaran las instrucciones siguientes:

Para txtTexto:
if(!Character.isLetter(evt.getKeyChar()))
            evt.consume();


Para txtNumeros:
if(!Character.isDigit(evt.getKeyChar()))
            evt.consume();


Para txtSinEspacios:
if(Character.isWhitespace(evt.getKeyChar()))
            evt.consume();


Para txt5Caracteres:
if(txt5Caracteres.getText().length() > 4)
            evt.consume();


De esto cabe destacar que se utiliza la clase Character para acceder a sus métodos como isDigit(), isWhiteSpace() o isLetter() mismos que evaluan un char y devuelven un valor boleano en función de si se trata de una letra, número o espacio (existen más métodos). Otra cosa en común que seguro se hace notar es el método consume(), que se encarga de consumir el evento generado para así evitar que se procese de manera 'normal' en el flujo del programa.

En realidad el código es muy simple y es evidente que se pueden hacer operaciones tan complejas y útiles como se requieran.

Si hay alguna duda podemos revisarla.

Finalmente dejo el enlace del código del proyecto.

https://mega.co.nz/#!l9gxUboJ!B-OijM3N8Y0q5Qre4cSKLcrY07P5H6dYXDaL5PrzOYM
Validación de JTextField en Java
17 Puntos Score: 4.3/10
Visitas: 1085 Favoritos: 8
Ver los usuarios que votaron...
7 Comentarios Validación de JTextField en Java
en mis epocas usaba char, codigo ascii para letras y etc...
@lilrudy11 ya tengo cuenta, ahorita lo posteo
@juan087 lo s?
buenisimo che! de todas las maneras estoy covencido que esta es la mas facil de todas!
@xxLuk4sxx gracias amigo, ojal?
Buena info gracias!
@john007 de nada amigo, saludos  
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!