Tutorial 7- JTextField - Validacion - Sin Eventos

9
27-4-2015 Tutorial: Validación de datos de entrada (JTextField) Norman Salvador Aráuz López -

description

Tutorial 7- JTextField - Validacion - Sin Eventos

Transcript of Tutorial 7- JTextField - Validacion - Sin Eventos

Tutorial: Validacin de datos de entrada (JTextField)

Nota: El presente tutorial asume que usted ya sabe cmo crear, agregar controles, formularios etc. a una aplicacin desde cero. Si usted no maneja estas temticas se recomienda primero realizar los tutoriales anteriores, y practicar continuamente para dominio de la sintaxis.En tutoriales anteriores vimos como validar datos de entrada utilizando eventos. El siguiente ejemplo muestra paso a paso como validar datos de entrada utilizando funciones internas propias de Java implementadas en mtodos (funciones) personalizados, por tanto en este tutorial aprenderemos:1. Funciones personalizadas para validar entrada de datos Datos numricos enteros Formatos de fecha Cadenas vacas2. Utilizacin de los formatos de la ventana de propiedades en la vista de diseo Datos numricos Formatos de fecha Formatos de hora Cadenas vacas

Comencemos:Para ambos casos crearemos un formulario con los controles que aparecen a continuacin:

La lista de controles con sus nombres correspondientes se muestra a continuacin:Nombre del controlNombre dentro del programa

JLabel (Fecha)No es necesario

JLabel (Nmero entero)No es necesario

JLabel (Cadena vaca)No es necesario

JDateChossertxtFecha (se explica al final)

JTextFieldtxtNmero

JTextFieldtxtCadenaVacia

Button (Guardar)btnGuardar

El JDateChosser NO se agregar por ahora, se explicar luego en el tutorial. Listo, ahora comenzaremos yendo al cdigo fuente para crear nuestra funcin para validar datos de entrada:1. Funciones personalizadas para validar datos de entradaLa idea dentro del cdigo fuente, ser pasar los datos de cada texto a los mtodos correspondientes para que sean validados. Las funciones (estaVacio, esNumero, esFechaValida) a continuacin debern ir luego de la funcin constructor, y en el botn sern Guardar sern probadas una a una para verificar su resultado.Cadena VacaAgreguemos el cdigo siguiente.

La funcin anterior toma el dato recibido y verifica que no est vaci, de lo contrario devolver falso o sea, el campo no est vaci, en todo caso los campos de un formulario se supone que son para entrada de datos, por lo tanto no deben estar vacos, es decir esta funcin deberemos usarla en todos los campos que requieran una entrada de datos.Datos numricos EnterosDentro del cdigo fuente, luego del constructor crearemos la siguiente funcin:

La funcin anterior es de tipo boolean, recibe un parmetro de tipo String, que en este caso ser el dato que sea ingresado en el JTextField, luego, en el bloque try, la funcin tratar de convertir el dato entrante en un nmero y si esto es posible regresar un verdadero, indicando que la entrada es vlida, de lo contrario en el bloque catch, se apurar la excepcin y se retornar un falso indicando que el carcter introducido no es un nmero entero. Es decir si la cadena ingresada es un nmero entero la funcin validar el dato y se ingresar de lo contrario, el usuario tendr que digitar nuevamente el dato en el formulario.Luego, para realizar la validacin, en el botn guardar escribimos lo siguiente:

Lo que dice el bloque anterior es: Si, el dato en el texto llamado txtNumero es Entero y No est Vaco entonces es un dato vlido de lo contrario un mensaje avisar que el dato introducido no es vlido.Datos cadena de tipo FechaPara controlar las entradas tipo fecha utilizaremos un control especial el cual nos servir como un selector de fechas, esto para facilitar al usuario el ingreso de una fecha con solo seleccionarla, vamos a la direccin web que aparece a continuacin y descargamos el complemento:http://www.java2s.com/Code/Jar/j/Downloadjcalendar133jar.htmAh descargaremos un archivo con extensin .jar comprimido en un zip, es el primero de la lista:

Luego de esto descomprimimos el archivo y nos aparecer uno como el de la siguiente imagen:Para agregarlo, nos ubicamos en la vista de diseo, click derecho sobre el panel de herramientas y luego click en la opcin Palette Manager.

Luego nos aparecer una ventana desde la cual agregaremos el control descargado y despus podremos utilizarlo en el editor de netbeans.Para buscar el archivo .jar hacemos lo siguiente: En la ventana que aparece del Palette Manager click en el botn Add from JAR y nos abrir una ventana para buscar el archivo. El archivo descomprmelo en el escritorio para que te sea fcil encontrarlo.

Seleccionamos la ubicacin del archivo, seleccionamos el archivo, y damos click en siguiente, a continuacin aparecer lo siguiente:

Seleccionamos los controles que queramos agregar, son controles para manejo de fechas, si quieres puedes agregar todos, el que mostrar en este tutorial ser JDataChosser, luego de seleccionar dar click en siguiente.Las carpetas mostradas anteriormente son las carpetas para organizar las categoras de controles encontradas en la ventana de propiedades de netbeans. Seleccionas la carpeta de la categora donde quieres que se muestre el control, yo seleccionar en Beans y das click en finish.Luego de esto el control se mostrar en el panel izquierdo y ahora s podemos agregarlo, lgicamente si t agregaste ms de un control la lista completa de estos aparecer tambin:

La forma de uso se explica a continuacin:

Agregamos el control de fecha y a continuacin nos vamos al cdigo fuente para capturar este dato agregando la siguiente funcin:

A medida que vallamos escribiendo las instrucciones Date datoAValidar y SimpleDateFormat nos pedir agregar ciertas importaciones:

La funcin anterior recibe un dato de tipo fecha enviado desde el mtodo del botn guardar, luego de ello trata de pasarla a un formato de fecha aceptado y si no puede realizar la conversin significa que el dato no es vlido, por lo cual enviar un false a la funcin principal.En el botn guardar agregamos el siguiente bloque de cdigo:

Si el dato ingresado es una cadena fecha como especifica el control entonces la entrada es vlida, de lo contrario se deber corregir el dato.