How do I Prompt the user to enter a password before entering the main program?
10,817
Solution 1
You can simply add a static block to your program where you will do your authentication, this static block is always executed before the main method. If the user is not valid go with
System.exit(0);
to exit the program. Else the program will start execution as usual.
Here is one sample program to give you some idea :
import java.awt.Color;
import javax.swing.*;
public class Validation extends JFrame
{
private static Validation valid = new Validation();
static
{
String choice = JOptionPane.showInputDialog(valid, "Enter Password", "Password", JOptionPane.PLAIN_MESSAGE);
if ((choice == null) || ((choice != null) && !(choice.equals("password"))))
System.exit(0);
}
private static void createAndDisplayGUI()
{
valid.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
valid.setLocationRelativeTo(null);
valid.getContentPane().setBackground(Color.YELLOW);
valid.setSize(200, 200);
valid.setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndDisplayGUI();
}
});
}
}
Solution 2
You can use showInputDialog to get the user name
and the below code to get the password
JLabel label = new JLabel("Please enter your password:");
JPasswordField jpf = new JPasswordField();
JOptionPane.showConfirmDialog(null,
new Object[]{label, jpf}, "Password:",
JOptionPane.OK_CANCEL_OPTION);
and write a if condition to check the user name and password
if (!isValidLogin()){
//You can give some message here for the user
System.exit(0);
}
// If login is validated, then the user program will proceed further
Solution 3
String userName = userNameTF.getText();
String userPassword = userPasswordPF.getText();
if(userName.equals("xian") && userPassword.equals("1234"))
{
JOptionPane.showMessageDialog(null,"Login successful!","Message",JOptionPane.INFORMATION_MESSAGE);
// place your main class here... example: new L7();
}
else
{
JOptionPane.showMessageDialog(null,"Invalid username and password","Message",JOptionPane.ERROR_MESSAGE);
userNameTF.setText("");
userPasswordPF.setText("");
}
Author by
user976123
Updated on June 14, 2022Comments
-
user976123 almost 2 years
What I need to do is to prompt the user with a username and password (authentication is done locally) and if it checks out, the user would then be able to access the main program body.
public static void main(String[] args){ //String input = JOptionPane.showInputDialog("Enter password to continue: "); //input2 = Integer.parseInt(input); // followed by the creation of the main frame new Cashier3(); Cashier3 frame = new Cashier3(); frame.setTitle("CASHIER 2"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
is there any quick way to go about doing this?
-
user976123 over 12 yearsThat made alot of sense. I haven't really touched on static blocks, never really saw the need until now. Thanks, this made it much clearer.
-
nIcE cOw over 12 years@user976123 : Your Welcome, Glad I could be of help. Regards
-
oers over 12 yearsplease see the formatting help on how to format code blocks :) Or just use the {} Button the next time.