Vous êtes sur la page 1sur 4

El JPasswordField clase, una subclase de JTextField , ofrece especialidades de

texto para introducir la contrasea. Por razones de seguridad, un campo de


contrasea no muestra los caracteres que el usuario escribe. En cambio, el campo
muestra un carcter diferente del escrito, tales como '*' un asterisco uno. Como
otra medida de seguridad, un campo de contrasea almacena su valor como una
matriz de caracteres, en lugar de como una cadena. Al igual que una
simple campo de texto , un campo de contrasea dispara un evento action cuando
el usuario indica que se puede escribir texto completo, por ejemplo, pulsando el
botn Enter.
Aqu est una foto de una demo que se abre una pequea ventana y pide al
usuario que escriba una contrasea.

Haga clic en el botn Iniciar para ejecutar PasswordDemo usando Java Web
Start ( descargar el JDK 6 o posterior ). Por otra parte, para compilar y ejecutar el
ejemplo usted mismo, consulte el ndice de ejemplo .

La contrasea es "Bugaboo". La contrasea "Bugaboo" es slo un


ejemplo. Utilizar mtodos de autenticacin segura en sistemas de
produccin. Usted puede encontrar el cdigo completo para este programa
en PasswordDemo.java . Aqu est el cdigo que crea y configura el campo de la
contrasea:
passwordField = new JPasswordField (10);
passwordField.setActionCommand (OK);
passwordField.addActionListener (este);

El argumento pasado en la JPasswordField constructor indica el tamao preferido


del campo, que es al menos 10 columnas de ancho en este caso. Por defecto, un
campo de contrasea muestra un punto para cada carcter escrito. Si desea
cambiar el carcter de eco, llame a la setEchoChar mtodo. Despus, el cdigo
aade un detector de medidas para el campo de contrasea, que comprueba el

valor tecleado por el usuario. Aqu est la puesta en prctica de la escucha de la


accin de actionPerformedmtodo:
public void actionPerformed (ActionEvent e) {
Cadena cmd = e.getActionCommand ();
if (OK.equals (cmd)) {/ / Proceso de la contrasea.
char [] = entrada passwordField.getPassword ();
if (isPasswordCorrect (entrada)) {
JOptionPane.showMessageDialog (controllingFrame,
"Listo Ha escrito la contrasea correcta.");
Else {}
JOptionPane.showMessageDialog (controllingFrame,
"Contrasea no vlida. Intntelo de nuevo."
"Mensaje de error",
JOptionPane.ERROR_MESSAGE);
}
/ / Cero a la contrasea que sea posible, para la seguridad.
Arrays.fill (entrada, '0 ');
passwordField.selectAll ();
resetFocus ();
} Else ... / / manejar el botn de ayuda ...
}

Nota de seguridad: Para mejorar la seguridad, una vez que haya terminado con
la matriz de caracteres devuelto por el getPassword mtodo, debe configurar cada
uno de sus elementos a cero. El siguiente fragmento de cdigo anterior muestra
cmo hacer esto.
Un programa que utiliza un campo de contrasea por lo general valida la
contrasea antes de completar cualquier accin que requiera la contrasea. Este
programa llama a un mtodo privado, isPasswordCorrect , que compara el valor
devuelto por la getPassword mtodo a un valor almacenado en una matriz de
caracteres. Aqu est el cdigo:
private static boolean isPasswordCorrect (char entrada []) {
boolean isCorrect = true;
char [] = {correctPassword 'b', 'u', 'g', 'a', 'b', 'O', 'o'};
if (input.length! correctPassword.length =) {
isCorrect = false;
Else {}
isCorrect = Arrays.equals (entrada, correctPassword);
}
/ / Cero a cabo la contrasea.
Arrays.fill (correctPassword, '0 ');
volver isCorrect;

La API de campo de contrasea

Las siguientes tablas recogen los comnmente


utilizados JPasswordField constructores y mtodos. Para obtener informacin
sobre la API que heredan los campos de contrasea, consulte Cmo utilizar
campos de texto .
Constructores ms utilizados de JPasswordField y Mtodos
Constructor o mtodo
Propsito
JPasswordField ()
JPasswordField (String) Crea un campo de contrasea. Cuando est presente,
JPasswordField (String, el int argumento especifica el ancho deseado en las
int)
columnas. La cadena argumento contiene el texto
JPasswordField (int)
inicial del campo. El documento de discusin ofrece un
JPasswordField
modelo personalizado para el campo.
(Documento, String, int)
char [] getPassword () Devuelve la clave como un conjunto de caracteres.
setEchoChar vaco
(char)
Establece u obtiene el carcter eco que se muestra en
caracteres getEchoChar lugar de los caracteres reales tecleados por el usuario.
()
addActionListener void
(ActionListener)
void
removeActionListener Aade o elimina un oyente de action.
(ActionListener)
(definida en
elJTextField )
selectAll vaco ()
Selecciona todos los caracteres en el campo de la
(definida
contrasea.
enJTextComponent )
Ejemplos que utilizan campos de contrasea

PasswordDemo es nico ejemplo del tutorial que utiliza


un JPasswordField objeto. Sin embargo, el tutorial tiene muchos ejemplos que
usan JTextField objetos, cuya API es heredado

por JPasswordField . Ver ejemplos que usan los campos de texto para obtener
ms informacin.
Si est programando en JavaFX, ver campos de contrasea .
http://www.youtube.com/watch?v=1j6PLZqLRy4

Vous aimerez peut-être aussi