Ejemplos
de comportamiento ante la pérdida de foco
Aquí puedes ver en unos Applets el posible comportamiento del JFormattedTextField
cuando pierde el foco.
Cada Applet tiene cuatro componentes:
- El JFormattedTextField, que admite un número
entero. Para las pruebas debes poner número enteros válidos
o bien letras sin números, para que den error.
- Un botón que pide el getValue() al JFormattedTextField
y lo muestra en el JLabel que hay a su derecha.
- Una etiqueta donde se muestra el valor obtenido del JFormattedTextField
cuando se pulsa el botón anterior.
- Un JTextField que sólo sirve para que pinches
en él haciendo que el JFormattedTextField pierda
el foco. Al pinchar en él, nadie le pide nada al JFormattedTextField.
Lo que hace en cada caso es su comportamiento.
COMMIT_OR_REVERT
Este es el comportamiento por defecto. Prueba simplemente a escribir un
valor bueno y pinchar en el campo de texto de la derecha. Luego escribe
uno malo y nuevamnte en el campo de texto de la derecha.
- Con un valor válido escrito en el JFormattedTextField,
lo guarda y es el que devuelve en el getValue(). Esta
es la parte COMMIT.
- Con un valor no válido, muestra en pantalla y devuelve el último
valor válido que tenía. Esta es la parte REVERT.
COMMIT
Con este comportamiento, sólo hace la parte COMMIT
del caso anterior
- Si escribimos un valor bueno, lo recoge correctamente.
- Si escribimos unas letras, getValue() devuelve el último
valor bueno. Puedes verlo pulsando el botón y viendo qué
sale en la etiqueta. Sin embargo, el JFormattedTextField
no arregla lo que está mostrando por pantalla
REVERT
Con este comportamiento, no se hace COMMIT, sólo
se hace la parte REVERT. Tanto si escribimos un valor bueno
como si escribimos una malo, siempre volveremos al valor antiguo. La única
forma de introducir un valor bueno y que lo acepte es pulsar <intro>
después de escribir el valor. Esto es así porque así
se ha hecho en código, no porque el pulsar <intro> sea un comportamiento
por defecto del JFormattedTextField.
- Si escribes un valor bueno y pierdes el foco o pulsas el botón,
el editor vuelve a mostrar el valor anterior
- Si escribes unas letras, pasa lo mismo
PERSIST
Con este comportamiento, lo que escribas permanece en el editor, tanto
si está bien como si está mal. getValue() devolverá
el valor que se muestra si es correcto y si no, el último valor bueno.
- Si escribes un valor bueno, todo va bien y se devuelve el valor bueno
- Si escribes unas letras, las letras se seguirán mostrando,
pero getValue() devolverá el último valor bueno.
Puedes descargarte los fuentes de estos ejemplos.
Contiene los Applets y unas clases con main() para que puedas ejecutarlo
sin necesidad de Applet. Las clases con main() son la que tienen un nombre
que empieza por Principal...
Y esto es todo por ahora. Puedes volver al JFormattedTextField
Estadísticas y comentarios
Numero de visitas desde el 4 Feb 2007:
- Esta pagina este mes: 12
- Total de esta pagina: 12194
- Total del sitio: 43568843