sábado, 14 de febrero de 2015

Validación de JTextField en Java

Aquí está mi segunda entrada...

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 :P ).

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.

Proyecto NetBeans [Mega]

Espero sea útil, saludos!

jueves, 12 de febrero de 2015

Colección La torre oscura - Stephen King [ePub]

Esta es mi primera entrada, en esta ocasión compartiré una fantástica colección de libros.

Esto se debe a que ayer pasé gran parte de la noche en busca de La torre oscura de Stephen King sin éxito alguno, luego hoy por la mañana en diferentes sitios encontraba alguno que otro libro, y al finalizar de recopilarlos fue que me decidí por hacer esta publicación.

Me gusta el formato ePub por sus beneficios para el lector, pues otorga la posibilidad de ajustar la lectura al gusto principalmente el tamaño de letra y color de fondo, además de que el lector electrónico de ePub abre la lectura en el último punto dejada, organiza la biblioteca, muestra estadísticas entre otras cosas, adicional a ello, cualquier persona con un smartphone puede instalarse un lector de ePubs.


Para quienes conocen a Stephen King pero no a esta obra les dejo una pequeña descripción sacada de Wikipedia:
La Torre Oscura es una serie de libros escrita por el autor estadounidense Stephen King, que incorpora temas de múltiples géneros, incluyendo fantasía, fantasía científica, terror y western. Describe a un "pistolero" y su búsqueda de una torre, cuya naturaleza es tanto física como metafórica. King ha descrito la serie como su magnum opus (obra maestra). Además de las ocho novelas que componen la serie propiamente dicha (las cuales suman un total de 4.250 páginas), muchos de sus otros libros se relacionan con la historia, introduciendo conceptos y personajes que entran en escena a medida que la serie se desarrolla. Una vez que la serie fuera terminada, una serie de cómics precuela le siguió.
Pues bien, sin más preámbulos lo prometido, esta colección se compone de los siguientes libros:

  • La torre oscura 01 - La hierba del diablo
  • La torre oscura 02 - La invocacion 
  • La torre oscura 03 - Las tierras baldias 
  • La torre oscura 04 - La bola de cristal 
  • La torre oscura 05 - Lobos del Calla 
  • La torre oscura 06 - Cancion de Susannah 
  • La torre oscura 07 - La torre oscura (parte 1)
  • La torre oscura 07 - La torre oscura (parte 2)
  • La torre oscura 07 - La torre oscura (parte 3)
  • La torre oscura 07 - La torre oscura (parte 4)
  • La torre oscura 07 - La torre oscura (parte 5)


Los archivos están comprimidos con WinRar y no tienen contraseña. Dejo a continuación los enlaces:

Dropbox

Mediafire

Mega

En lo personal para leer uso y recomiendo Aldiko como lector de libros electrónicos. Más adelante haré una entrada sobre este lector.

Finalmente espero disfruten de esta magnifica obra de Stephen King, saludos.