Voici un exemple de code Java montrant comment créer une boîte de dialogue de mot de passe. Ce programme utilise une combinaison des JOptionPane
classe et JPasswordField
classe.
Lorsque ce programme est exécuté, un JOptionPane
est affiché contenant un JPasswordField
, une JTextField
, un bouton OK et Annuler. le JFrame
derrière la JOptionPane
utilise une zone de texte pour fournir des commentaires sur l'entrée effectuée par l'utilisateur et sur les boutons sur lesquels vous avez appuyé.
L'article relatif à ce code est Comment créer une boîte de dialogue de mot de passe. Jetez également un œil à JPasswordField Overview si vous souhaitez des informations plus spécifiques sur le JPasswordField
classe.
Remarque:Pour que ce programme Java fonctionne, il doit être enregistré dans un fichier appelé PasswordDialog.java
// Les importations sont répertoriées dans leur intégralité pour montrer ce qui est utilisé // pourrait simplement importer javax.swing. * Et 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 // Remarque: En règle générale, la méthode principale sera dans une // classe distincte. Comme il s'agit d'un simple exemple d'une classe // tout est dans la même classe. public static void main (String [] args) // Utiliser le thread de répartition des événements pour les composants Swing EventQueue.invokeLater (new Runnable () @Override public void run () createGuiFrame ();); // gère la création du JFrame et // tous ses composants private static void createGuiFrame () JFrame guiFrame = new JFrame (); // assurez-vous que le programme se ferme lorsque le cadre se ferme guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle ("Exemple de boîte de dialogue"); guiFrame.setSize (500 300); // Cela centrera le JFrame au milieu de l'écran guiFrame.setLocationRelativeTo (null); guiFrame.setVisible (true); // Utilisation d'un JTextArea pour afficher les commentaires // (c'est-à-dire, le nom d'utilisateur et le mot de passe saisis JTextArea tracker = new JTextArea ("Password Tracker:"); guiFrame.add (tracker); // Utilisation d'un JPanel comme message pour le 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); // Comme le JOptionPane accepte un objet comme message / / il nous permet d'utiliser n'importe quel composant que nous aimons - dans ce cas // un JPanel contenant les composants de dialogue que nous voulons int input = JOptionPane.showConfirmDialog (guiFrame, userPanel, "Enter your password:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) ; char [] correctPassword = 'a', 'P', 'a', 'S', 's', 'W', 'o', 'R', 'd'; if (input == 0 ) // Bouton OK = 0 trac ker.append ("\ nLe nom d'utilisateur entré était:" + username.getText ()); // Récupère le mot de passe char [] entréPassword = passwordFld.getPassword (); tracker.append ("\ nLe mot de passe entré était:" + String.valueOf (entréPassword)); if (Arrays.equals (mot de passe correct, mot de passe entré)) tracker.append ("\ nLe mot de passe entré est correct!"); else tracker.append ("\ nSécurité d'appel - c'est un imposteur!"); // Remarque: la meilleure pratique consiste à mettre à zéro le tableau // qui contient le mot de passe. (Un peu idiot ici // car j'imprime le mot de passe pour montrer comment il est récupéré // mais gardez-le à l'esprit lorsque vous utilisez JPasswordFields.) Arrays.fill (entréPassword, '0'); else // soit le bouton d'annulation soit le 'x' // a été pressé tracker.append ("\ nDialog cancelled…");