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 de JOptionPane clase y el JPasswordField clase.

Cuando este programa se ejecuta un JOptionPane se muestra con un JPasswordField, un JTextField, un botón Aceptar y Cancelar. los JFrame detrás de la JOptionPane utiliza 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 JPasswordField Overview si desea obtener información más específica sobre JPasswordField clase.

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á utilizando // 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 despacho 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 cierre 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 trac ker.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 // se ha presionado el botón cancelar o la 'x' // tracker.append ("\ nDialog cancelado ...");