Programma della finestra di dialogo della password

Ecco un esempio di codice Java che mostra come creare una finestra di dialogo per la password. Questo programma utilizza una combinazione di JOptionPane classe e il JPasswordField classe.

Quando viene eseguito questo programma a JOptionPane viene mostrato contenente un JPasswordField, un' JTextField, un pulsante OK e Annulla. Il JFrame dietro il JOptionPane utilizza un'area di testo per fornire feedback sull'input che l'utente ha effettuato e su quali pulsanti sono stati premuti.

L'articolo relativo a questo codice è la finestra di dialogo Come creare una password. Inoltre, dai un'occhiata a Panoramica di JPasswordField se desideri informazioni più specifiche su JPasswordField classe.

Nota:Perché questo programma Java funzioni, deve essere salvato in un file chiamato PasswordDialog.java

// Le importazioni sono elencate per intero per mostrare ciò che viene utilizzato // potrebbe semplicemente importare javax.swing. * E 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: in genere il metodo principale sarà in una classe // separata. Dato che questo è un semplice esempio di una classe // è tutto in una classe. public static void main (String [] args) // Utilizza il thread di invio eventi per i componenti Swing EventQueue.invokeLater (new Runnable () @Override public void run () createGuiFrame (););  // gestisce la creazione di JFrame e // tutti i suoi componenti private static void createGuiFrame () JFrame guiFrame = new JFrame (); // assicurarsi che il programma si chiuda quando il frame chiude guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle ("Esempio di finestra di dialogo"); guiFrame.setSize (500.300); // Questo centrerà il JFrame nel mezzo dello schermo guiFrame.setLocationRelativeTo (null); guiFrame.setVisible (true); // Utilizzo di JTextArea per visualizzare il feedback // (ovvero, nome utente e password immessi tracker JTextArea = nuovo JTextArea ("Tracker password:"); guiFrame.add (tracker); // Utilizzo di JPanel come messaggio per JOptionPane JPanel userPanel = new JPanel (); userPanel.setLayout (new GridLayout (2,2)); JLabel usernameLbl = new JLabel ("Username:"); 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); // Dato che JOptionPane accetta un oggetto come messaggio / / ci consente di utilizzare qualsiasi componente che ci piace - in questo caso // un JPanel contenente i componenti della finestra di dialogo che vogliamo int input = JOptionPane.showConfirmDialog (guiFrame, userPanel, "Inserisci la tua password:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) ; char [] correctPassword = 'a', 'P', 'a', 'S', 's', 'W', 'o', 'R', 'd'; if (input == 0 ) // Pulsante OK = 0 trac ker.append ("\ nIl nome utente inserito era:" + username.getText ()); // Recupera password char [] entryPassword = passwordFld.getPassword (); tracker.append ("\ nPassword immesso era:" + String.valueOf (enterPassword)); if (Arrays.equals (correctPassword, entryPassword)) tracker.append ("\ nLa password inserita è corretta!");  else tracker.append ("\ nChiama la sicurezza - è un impostore!");  // Nota: la migliore pratica è di azzerare l'array // che contiene la password. (È un po 'sciocco qui // mentre sto stampando la password per mostrare come viene recuperata // ma tienilo a mente quando usi JPasswordFields.) Arrays.fill (entryPassword,' 0 ');  else // il pulsante Annulla o 'x' // è stato premuto tracker.append ("\ nDialog cancelled ...");