Jformatted

Páginas: 10 (2310 palabras) Publicado: 10 de abril de 2012
USOS INTERESANTES DE JFormattedTextField
Francesc Rosés i Albiol (08/2002)
La versión 1.4 del JDK de Sun nos obsequia con un montón de novedades, todas ellas buenas y algunas, largamente deseadas. En este artículo nos centraremos en algunos aspectos interesantes y poco comentados de un nuevo componente Swing: JFormattedTextField. Este componente ha sido muy esperado por todos a los que nos hatocado desarrollar interficies de usuario usando Java. Lo primero que uno piensa cuando se acerca por primera vez a él es “finalmente tenemos un campo que soporta máscaras”. Todos esperábamos este componente. Sin embargo, su nombre no es algo así como JMaskedTextField. Su nombre nos insinúa que va más allá de un campo con máscaras. Se trata de un campo de entrada que nos permite especificarformatos. Ciertamente, una manera de especificar un formato de entrada es mediante una máscara, pero no es el único. Además, no hay que olvidar que un campo de entrada no sólo sirve para entrar texto. También muestra lo que hemos entrado. Volveremos más tarde sobre este punto. Resumiendo un poco las características de este componente podemos decir que: • Permite especificar el formato de entrada de datosmediante máscaras y sabe aprovechar el resto de especificaciones de formato disponibles en Java para números, fechas, horas, etc. • Permite decidir si se admiten caracteres incorrectos en la entrada o no. • Permite distinguir entre modalidad de edición y modalidad de visualización. • Permite que decidamos qué hacer con el foco si lo que el usuario ha entrado no es correcto. Vamos a desarrollar unpoco estos puntos.

Especificación de formato
El componente JFormattedTextField nos permite especificar el formato de diversas maneras:

De manera automática: Asignando un valor al campo
Simplemente assignando un valor al campo, éste nos asigna un formato. Así, por ejemplo, si le asignamos una fecha, él nos la permitirá editar. El siguiente código crea un campo de entrada para fechas con elformato por defecto:
JFormattedTextField efFecha = new JformattedTextField(new Date());

El campo mostrará la fecha actual con el siguiente formato:
19-ago-2002

Pero no sólo nos presenta la fecha. Nos permite editarla de una manera sencilla y sin error posible. Si colocamos, por ejemplo, el cursor sobre el mes y pulsamos la flecha hacia arriba, el mes cambia y pasa a ser sept. Si pulsamosla flecha hacia abajo, el mes será jul. El mismo comportamiento se da para el día y el año. Además, el comportamiento es inteligente. Supongamos que la fecha sea 28 de febrero de 2002 y que aumentemos el día. La nueva fecha sería 1 de marzo de 2002. Lógicamente, si el año fuera el 2000 (bisiesto) la fecha propuesta sería el 29 de febrero de 2000.

1 de 7

Mediante una máscara
Podemosutilizar una máscara para determinar el formato. Por ejemplo, si quisiéramos crear un campo para entrar códigos de cuenta corriente, podríamos hacerlo así de fácil:
MaskFormatter mfCC = new MaskFormatter(“####-####-##-##########”); mfCC.setPlaceholderCharacter('_'); JFormattedTextField efCC = new JformattedTextField(mfCC);

El campo tendría el siguiente aspecto:
____-____-__-__________

Fijémonosque las partes escribibles se representan con el carácter de subrayado que hemos especificado con setPlaceholderCharacter(). La siguiente tabla resume los caracteres utilizables en una máscara: Carácter # ? A * U L H ' Un número Una letra Una letra o un número Cualquier cosa Una letra que será pasada a mayúscula Una letra que será pasada a minúscula Un dígito hexadecimal (A-F, a-f, 0-9) Carácter deescape para otro caràcter de máscara Descripción

Mediante descriptores de formato ya existentes
Java nos ofrece una amplia gama de especificaciones de formato para fechas, horas, números y monedas. Todos ellos pueden ser utilizados, directa o indirectamente, para especificar el formato usado por el campo. Ejemplificaremos algunos de ellos. Más arriba, hemos mostrado cómo especificar un...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS