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 ...");