Programul pentru caseta de dialog cu parolă

Iată un exemplu de cod Java care arată cum se poate face o casetă de dialog cu parolă. Acest program utilizează o combinație de JOptionPane clasa si JPasswordField clasă.

Când acest program este executat a JOptionPane este arătat conținând un JPasswordField, A JTextField, un buton OK și Cancel. JFrame in spatele JOptionPane utilizează o zonă de text pentru a oferi feedback despre intrarea pe care a făcut-o utilizatorul și ce butoane au fost apăsate.

Articolul referitor la acest cod este Cum se face caseta de dialog cu parolă. De asemenea, aruncați o privire asupra JPasswordField Prezentare generală dacă doriți mai multe informații specifice despre JPasswordField clasă.

Notă:Pentru ca acest program Java să funcționeze, trebuie să fie salvat într-un fișier numit PasswordDialog.java

// Importurile sunt listate integral pentru a arăta ce se folosește // ar putea importa doar javax.swing. * Și 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 // Notă: De obicei, metoda principală va fi într-o clasă // separată. Deoarece este o simplă clasă // un exemplu, totul este într-o singură clasă. public static void main (String [] args) // Folosiți firul de difuzare a evenimentelor pentru componentele Swing EventQueue.invokeLater (new Runnable () @Override public void run () createGuiFrame (););  // gestionează crearea JFrame și // toate componentele sale private static void createGuiFrame () JFrame guiFrame = new JFrame (); // asigurați-vă că programul iese la închiderea cadrului guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle ("Exemplu casetă de dialog"); guiFrame.setSize (500,300); // Acest lucru va centra JFrame în mijlocul ecranului guiFrame.setLocationRelativeTo (null); guiFrame.setVisible (true); // Utilizarea unui JTextArea pentru redarea feedback-ului // (adică, numele de utilizator și parola introduse JTextArea tracker = new JTextArea ("Password Tracker:"); guiFrame.add (tracker); // Utilizarea unui JPanel ca mesaj pentru JPptionel JOptionPane userPanel = nou JPanel (); userPanel.setLayout (nou GridLayout (2,2)); JLabel usernameLbl = new JLabel ("Username:"); JLabel passwordLbl = new JLabel ("Password:"); JTextField username = new JTextField ( ); JPasswordField passwordFld = nou JPasswordField (); userPanel.add (usernameLbl); userPanel.add (nume de utilizator); userPanel.add (passwordLbl); userPanel.add (passwordFld); // Pe măsură ce JOptionPane acceptă un obiect ca mesaj / / ne permite să folosim orice componentă ne place - în acest caz // un JPanel care conține componentele de dialog pe care le dorim int input = JOptionPane.showConfirmDialog (guiFrame, userPanel, "Introduceți parola:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) ; char [] correctPassword = 'a', 'P', 'a', 'S', 's', 'W', 'o', 'R', 'd'; if (input == 0 ) // Butonul OK = 0 trac ker.append ("\ nNumele de utilizator introdus a fost:" + nume utilizator.getText ()); // Recuperați parola char [] entryPassword = passwordFld.getPassword (); tracker.append ("\ nPassword enter a fost:" + String.valueOf (introdusPassword)); if (Arrays.equals (corectPassword, enterPassword)) tracker.append ("\ n Parola introdusă este corectă!");  else tracker.append ("\ nSolicitați securitatea - este un impostor!");  // Notă: cea mai bună practică este să eliminați din nou șirul // care conține parola. .  else // fie butonul de anulare, fie 'x' // a fost apăsat tracker.append ("\ nDialog anulat ...");