Wednesday, January 1, 2020

Example Java Code Password Dialog Box Program

Here is example Java code showing how to make a password dialog box. This program uses a combination of the JOptionPane class and the JPasswordField class. When this program is run a JOptionPane is shown containing a JPasswordField, a JTextField, an OK and Cancel button. The JFrame behind the JOptionPane uses a text area to provide feedback about the input the user has made and what buttons have been pressed. The article relating to this code is How to Make a Password Dialog Box. Also, have a look at JPasswordField Overview if you want more specific information about the JPasswordField class. Note:For this Java program to work it needs to be saved in a file called PasswordDialog.java //Imports are listed in full to show whats being used //could just import javax.swing.* and 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 { //Note: Typically the main method will be in a //separate class. As this is a simple one class //example its all in the one class. public static void main(String[] args) { //Use the event dispatch thread for Swing components EventQueue.invokeLater(new Runnable() { Override public void run() { createGuiFrame(); } }); } //handles the creation of the JFrame and //all its components private static void createGuiFrame() { JFrame guiFrame new JFrame(); //make sure the program exits when the frame closes guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); guiFrame.setTitle(Dialog Box Example); guiFrame.setSize(500,300); //This will center the JFrame in the middle of the screen guiFrame.setLocationRelativeTo(null); guiFrame.setVisible(true); //Using a JTextArea to diplay feedback //(i.e., the username and password entered JTextArea tracker new JTextArea(Password Tracker:); guiFrame.add(tracker); //Using a JPanel as the message for the 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); //As the JOptionPane accepts an object as the message //it allows us to use any component we like - in this case //a JPanel containing the dialog components we want 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) //OK Button 0 { tracker.append(\nUsername entered was: username.getText()); //Retrieve password char[] enteredPassword passwordFld.getPassword(); tracker.append(\nPassword entered was: String.valueOf(enteredPassword)); if (Arrays.equals(correctPassword, enteredPassword)) { tracker.append(\nThe password entered is correct!); } else { tracker.append(\nCall security - its an imposter!); } //Note: best practice is to zero out the array //that contains the password. (Bit silly here //as Im printing the password to show how its retrived //but keep it in mind when using JPasswordFields.) Arrays.fill(enteredPassword, 0); } else { //either the cancel button or the x //has been pressed tracker.append(\nDialog cancelled..); } } }

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.