Beruflich Dokumente
Kultur Dokumente
Llamada al método
Para utilizar esta función sólo es necesario pasarle un array de chars del campo
jPasswordField donde el usuario ha entrado la clave. Por ejemplo:
1
2 char [] claveEntrada = jPasswordField.getPassword();
3 if(passwordCorrecta(claveEntrada)){
4 echo "La contraseña entrada es correcta.";
5 }else{
6 echo "La contraseña entrada es errónea.";
}
Para editar cualquier tipo básico de java, estilo Integer, Float, Double, Date, etc, basta
con llamar al método setValue() del JFormattedTextField pasándole uno de estos tipos
de datos, o bien pasárselo en el constructor.
Por ejemplo, para Integer, nos bastaría con cualquiera de los dos casos siguientes:
Con esto ya tenemos un editor que nos permite recoger Integer directamente cuando el
usuario lo edite
Puedes ver estos cuatro casos funcionando en unos applets de ejemplo. También puedes
descargarte los fuentes de los mismos.
Vamos primero a definir nuestra propia clase. Por ejemplo, una clase Mayuscula que
representa una cadena de texto siempre en mayúsculas. Le ponemos un constructor que
admita un String para convertirlo a mayúsculas y un método toString() para obtener la
cadena en mayúsculas. La clase puede ser como esta
Las clases que realizan este tipo de conversiones para el JFormattedTextField heredan
de JFormattedTextField.AbstractFormatter, una clase interna del JFormattedTextField.
Si queremos usar nuestra clase Mayuscula, debemos hacer una clase hija
de JFormattedTextField.AbstractFormatter y definir los dos métodos abstractos que
tiene que son, precisamente, los de convertir de clase a String y de String a clase.
Bien, ya tenemos todo lo necesario construido. Ahora solo hay que instanciar el
JFormattedTextField pasándole en el constructor nuestra clase Formateador y con
setValue() darle un primer valor válido para evitar problemas.
Puedes ver un Applet con este editor funcionando y descargarte sus fuentes.
Supongamos que quiero un editor que me permita escribir un número con dos cifras
enteras y dos decimales. No queremos que el usuario escriba algo que no sea un número
y no queremos que escriba ni más ni menos de las cifras de las indicadas. El editor debe
admitir y devolvernos con setValue() y getValue() un Float.
try
{
/* El "patrón" para el editor. Las # representan cifras. En
la API puedes ver más. Ojo con el punto decimal, según el idioma
puede ser una coma.*/
MaskFormatter mascara = new MaskFormatter("##.##");
// Se construye el JFormattedTextField pasándole la máscara
JFormattedTextField textField = new
JFormattedTextField(mascara);
// Se da un valor inicial válido para evitar problemas
textField.setValue(new Float("12.34"));
}
catch (...)
Ya está listo. Nuestro editor sólo admite números de dos cifras enteras y dos decimales y
no nos deja escribir otra cosa. Los métodos getValue() y setValue() devuelven y
admiten Floats.
Puedes ver un Applet funcionando con este editor y descargarte sus fuentes.
El MaskFormatter nos vale también para la clase Date. El problema es que debemos
restringirnos a los formatos de texto que entiende Date en su constructor con String, que
no son precisamente bonitos ni cómodos para introducir un usuario.
Por ejemplo, supongamos que queremos un editor de Fecha hora en este formato
"dd/mm/yy hh:mm:ss" y que no queremos que nos dejen escribir nada incorrecto.
try
{
JFormattedTextField textField = new JFormattedTextField(new
FormatoFecha());
textField.setValue(new Date());
}
catch (...)
Puedes ver un Applet funcionando con este editor y descargarte sus fuentes.
El InternationalMaskFormatter
Puedes ver un Applet funcionando con este editor y descargarte sus fuentes.
Estadísticas y comentarios