Hier is een voorbeeld van een Java-code die laat zien hoe u een wachtwoorddialoogvenster kunt maken. Dit programma gebruikt een combinatie van de JOptionPane
klasse en de JPasswordField
klasse.
Wanneer dit programma wordt uitgevoerd JOptionPane
wordt getoond met een JPasswordField
, een JTextField
, een knop OK en Annuleren. De JFrame
achter de JOptionPane
gebruikt een tekstgebied om feedback te geven over de invoer die de gebruiker heeft gemaakt en welke knoppen zijn ingedrukt.
Het artikel met betrekking tot deze code is Hoe u een wachtwoorddialoogvenster kunt maken. Kijk ook eens naar JPasswordField Overzicht als u meer specifieke informatie wilt over de JPasswordField
klasse.
Notitie:Dit Java-programma werkt alleen als het is opgeslagen in een bestand met de naam PasswordDialog.java
// Imports worden volledig weergegeven om aan te geven wat wordt gebruikt // kan alleen javax.swing. * En java.awt. * Etc importeren, import javax.swing.JFrame; javax.swing.JOptionPane importeren; import javax.swing.JTextField; javax.swing.JTextArea importeren; javax.swing.JPasswordField importeren; import javax.swing.JPanel; import javax.swing.JLabel; java.awt.GridLayout importeren; import java.util.Arrays; import java.awt.EventQueue; public class PasswordDialog // Opmerking: de belangrijkste methode is meestal in een // aparte klasse. Omdat dit een eenvoudige klasse // is, is het allemaal in dezelfde klasse. public static void main (String [] args) // Gebruik de thread voor gebeurtenisverzending voor Swing-componenten EventQueue.invokeLater (new Runnable () @Override public void run () createGuiFrame ();); // verzorgt de creatie van het JFrame en // alle componenten ervan private statische void createGuiFrame () JFrame guiFrame = new JFrame (); // zorg ervoor dat het programma wordt afgesloten wanneer het frame wordt afgesloten guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle ("Dialoogvenster Voorbeeld"); guiFrame.setSize (500.300); // Hiermee wordt het JFrame in het midden van het scherm gecentreerd guiFrame.setLocationRelativeTo (null); guiFrame.setVisible (true); // Een JTextArea gebruiken om feedback te diplay // (dwz de gebruikersnaam en het wachtwoord ingevoerd JTextArea tracker = new JTextArea ("Password Tracker:"); guiFrame.add (tracker); // Een JPanel gebruiken als bericht voor de JOptionPane JPanel userPanel = new JPanel (); userPanel.setLayout (new GridLayout (2,2)); JLabel usernameLbl = new JLabel ("Gebruikersnaam:"); JLabel passwordLbl = new JLabel ("Password:"); JTextField gebruikersnaam = new JTextField ( ); JPasswordField passwordFld = new JPasswordField (); userPanel.add (gebruikersnaamLbl); userPanel.add (gebruikersnaam); userPanel.add (wachtwoordLbl); userPanel.add (passwordFld); // As het JOptionPane een object accepteert als het bericht / / hiermee kunnen we elke gewenste component gebruiken - in dit geval // een JPanel met de gewenste dialoogonderdelen int input = JOptionPane.showConfirmDialog (guiFrame, userPanel, "Voer uw wachtwoord in:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) ; char [] correctPassword = 'a', 'P', 'a', 'S', 's', 'W', 'o', 'R', 'd'; if (input == 0 ) // OK-knop = 0 trac ker.append ("\ nGebruikte gebruikersnaam was:" + gebruikersnaam.getText ()); // Wachtwoord ophalen char [] enterPassword = passwordFld.getPassword (); tracker.append ("\ nPassword ingevoerd was:" + String.valueOf (enterPassword)); if (Arrays.equals (correctwachtwoord, ingevoerd wachtwoord)) tracker.append ("\ nHet ingevoerde wachtwoord is correct!"); else tracker.append ("\ nCall security - it a imposter!"); // Opmerking: u kunt het beste de array // met het wachtwoord op nul zetten. (Beetje gek hier // omdat ik het wachtwoord afdruk om te laten zien hoe het is opgehaald // maar houd er rekening mee bij het gebruik van JPasswordFields.) Arrays.fill (enterPassword, '0'); anders // of de knop Annuleren of de 'x' // is ingedrukt tracker.append ("\ nDialog geannuleerd ...");