Lösenord Dialog Box Program

Här är exempel på Java-kod som visar hur man skapar ett lösenord-dialogruta. Detta program använder en kombination av JOptionPane klass och JPasswordField klass.

När detta program körs a JOptionPane visas med en JPasswordField, en JTextField, en OK och Avbryt-knapp. De JFrame bakom JOptionPane använder ett textområde för att ge feedback om ingången som användaren har gjort och vilka knappar som har tryckts in.

Artikeln som hänför sig till den här koden är Hur man skapar ett lösenord Dialogbox. Titta också på JPasswordField-översikt om du vill ha mer specifik information om JPasswordField klass.

Notera:För att detta Java-program ska fungera måste det sparas i en fil som heter PasswordDialog.java

// Import listas i sin helhet för att visa vad som används // kan bara importera javax.swing. * Och 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; importera java.awt.GridLayout; importera java.util.Arrays; importera java.awt.EventQueue; public class PasswordDialog // Obs: Huvudmetoden är vanligtvis i en // separat klass. Eftersom detta är ett enkelt klass // exempel är allt i en klass. public static void main (String [] args) // Använd händelseförsändningstråden för Swing-komponenter EventQueue.invokeLater (new Runnable () @Override public void run () createGuiFrame (););  // hanterar skapandet av JFrame och // alla dess komponenter privata statiska tomrum createGuiFrame () JFrame guiFrame = new JFrame (); // Se till att programmet går ut när ramen stänger guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle ("Dialogbox Exempel"); guiFrame.setSize (500.300); // Detta kommer att centrera JFrame mitt på skärmen guiFrame.setLocationRelativeTo (null); guiFrame.setVisible (true); // Använda en JTextArea för att spela feedback // (dvs användarnamn och lösenord in JTextArea tracker = new JTextArea ("Password Tracker:"); guiFrame.add (tracker); // Använda en JPanel som meddelande för JOptionPane JPanel userPanel = new JPanel (); userPanel.setLayout (nytt GridLayout (2,2)); JLabel användarnamnLbl = nytt JLabel ("Användarnamn:"); JLabel lösenordLbl = nytt JLabel ("Lösenord:"); JTextField användarnamn = nytt JTextField ( ); JPasswordField passwordFld = new JPasswordField (); userPanel.add (usernameLbl); userPanel.add (username); userPanel.add (passwordLbl); userPanel.add (passwordFld); // Eftersom JOptionPane accepterar ett objekt som meddelandet / / det tillåter oss att använda alla komponenter vi gillar - i det här fallet // en JPanel som innehåller de dialogkomponenter vi vill ha ingång = JOptionPane.showConfirmDialog (guiFrame, userPanel, "Ange ditt lösenord:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) ; char [] correctPassword = 'a', 'P', 'a', 'S', 's', 'W', 'o', 'R', 'd'; if (input == 0 ) // OK-knapp = 0 trac ker.append ("\ n Använt användarnamn var:" + användarnamn.getText ()); // Hämta lösenordssjälv [] EnterPassword = passwordFld.getPassword (); tracker.append ("\ nPassword inmatat var:" + String.valueOf (EnterPassword)); if (Arrays.equals (correctPassword, EnterPassword)) tracker.append ("\ nLösta lösenordet är korrekt!");  else tracker.append ("\ nKall säkerhet - det är en uppmaning!");  // Obs: bästa praxis är att nollställa ut matris // som innehåller lösenordet. (Lite dumt här // när jag skriver ut lösenordet för att visa hur det återvinns // men ha det i åtanke när jag använder JPasswordFields.) Arrays.fill (enterPassword, '0');  annars // antingen avbrytningsknappen eller 'x' // har tryckts på tracker.append ("\ nDialog avbruten ...");