Wie fordere ich den Benutzer auf, vor der Eingabe des Hauptprogramms ein Passwort einzugeben?

Was ich tun muss ist, den Benutzer mit einem Benutzernamen und Passwort (Authentifizierung wird lokal getan) und wenn es auscheckt, der Benutzer wäre dann in der Lage, auf den Hauptteil des Programms zugreifen.

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

Gibt es einen schnellen Weg, dies zu tun?

Sie können Ihrem Programm einfach einen statischen Block hinzufügen, in dem Sie Ihre Authentifizierung durchführen. Dieser statische Block wird immer vor der Hauptmethode ausgeführt. Wenn der Benutzer nicht gültig ist, gehen Sie mit

 System.exit(0); 

um das Programm zu beenden. Andernfalls startet das Programm wie gewohnt.

Hier ist ein Beispielprogramm, um Ihnen eine Idee zu geben:

 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(); } }); } } 

Sie können showInputDialog verwenden, um den Benutzernamen abzurufen

und den folgenden Code, um das Passwort zu erhalten

 JLabel label = new JLabel("Please enter your password:"); JPasswordField jpf = new JPasswordField(); JOptionPane.showConfirmDialog(null, new Object[]{label, jpf}, "Password:", JOptionPane.OK_CANCEL_OPTION); 

und schreibe eine if-Bedingung, um den Benutzernamen und das Passwort zu überprüfen

 if (!isValidLogin()){ //You can give some message here for the user System.exit(0); } 

// Wenn die Anmeldung validiert ist, wird das Benutzerprogramm weiter fortfahren

  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(""); }