Informacion

Programa de cuadro de diálogo de contraseña

Programa de cuadro de diálogo de contraseña

Aquí hay un código Java de ejemplo que muestra cómo crear un cuadro de diálogo de contraseña. Este programa utiliza una combinación deJOptionPaneclase y elJPasswordFieldclase.

Cuando este programa se ejecuta unJOptionPanese muestra con unJPasswordField, unaJTextField, un botón Aceptar y Cancelar. losJFramedetrás de laJOptionPaneutiliza un área de texto para proporcionar comentarios sobre la entrada que el usuario ha realizado y qué botones se han presionado.

El artículo relacionado con este código es Cómo crear un cuadro de diálogo de contraseña. Además, eche un vistazo a Descripción general de JPasswordField si desea información más específica sobreJPasswordFieldclase.

Nota:Para que este programa Java funcione, debe guardarse en un archivo llamado PasswordDialog.java

// Las importaciones se enumeran en su totalidad para mostrar lo que se está usando // podría importar javax.swing. * Y java.awt. * Etc ... import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.JTextArea; import javax.swing.JPasswordField; import javax.swing.JPanel; import javax.swing.JLabel; import java.awt.GridLayout; import java.util.Arrays; import java.awt.EventQueue; public class PasswordDialog {// Nota: Normalmente, el método principal estará en una // clase separada. Como este es un ejemplo simple de una clase // todo está en una clase. public static void main (String args) {// Usa el hilo de envío de eventos para los componentes Swing EventQueue.invokeLater (new Runnable () {@Override public void run () {createGuiFrame ();}}); } // maneja la creación de JFrame y // todos sus componentes privados estáticos void createGuiFrame () {JFrame guiFrame = new JFrame (); // asegúrese de que el programa salga cuando el marco se cierra guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle ("Ejemplo de cuadro de diálogo"); guiFrame.setSize (500,300); // Esto centrará el JFrame en el medio de la pantalla guiFrame.setLocationRelativeTo (null); guiFrame.setVisible (verdadero); // Usando un JTextArea para mostrar comentarios // (es decir, el nombre de usuario y la contraseña ingresados ​​JTextArea tracker = new JTextArea ("Password Tracker:"); guiFrame.add (tracker); // Usando un JPanel como mensaje para el JOptionPane JPanel userPanel = new JPanel (); userPanel.setLayout (new GridLayout (2,2)); JLabel usernameLbl = new JLabel ("Nombre de usuario:"); JLabel passwordLbl = new JLabel ("Password:"); JTextField username = new JTextField ( ); JPasswordField passwordFld = new JPasswordField (); userPanel.add (usernameLbl); userPanel.add (username); userPanel.add (passwordLbl); userPanel.add (passwordFld); // Como JOptionPane acepta un objeto como mensaje / / nos permite usar cualquier componente que nos guste - en este caso // un JPanel que contiene los componentes de diálogo que queremos int input = JOptionPane.showConfirmDialog (guiFrame, userPanel, "Ingrese su contraseña:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) ; char correctPassword = {'a', 'P', 'a', 'S', 's', 'W', 'o', 'R', 'd'}; if (input == 0) / / Botón OK = 0 {tracke r.append (" nEl nombre de usuario ingresado fue:" + username.getText ()); // Recuperar contraseña char enterPassword = passwordFld.getPassword (); tracker.append (" nLa contraseña ingresada fue:" + String.valueOf (ingresó Contraseña)); if (Arrays.equals (correctPassword, enterPassword)) {tracker.append (" n¡La contraseña ingresada es correcta!"); } else {tracker.append (" nSeguridad de llamadas: ¡es un impostor!"); } // Nota: la mejor práctica es poner a cero la matriz // que contiene la contraseña. (Es un poco tonto // mientras imprimo la contraseña para mostrar cómo se recupera // pero tenlo en cuenta cuando utilices JPasswordFields). Arrays.fill (ingresó Contraseña, '0'); } else {// el botón cancelar o la 'x' // se ha presionado tracker.append (" nDialog cancelado ..."); }}}