Как мне предложить пользователю ввести пароль перед входом в основную программу? - PullRequest
4 голосов
/ 02 февраля 2012

Что мне нужно сделать, это запросить у пользователя имя пользователя и пароль (аутентификация выполняется локально), и если он подтвердит это, пользователь сможет получить доступ к основному телу программы.1003 * Есть ли быстрый способ сделать это?

Ответы [ 3 ]

4 голосов
/ 02 февраля 2012

Вы можете использовать showInputDialog, чтобы получить имя пользователя

и код ниже, чтобы получить пароль

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

и написать условие if для проверки имени пользователя и пароля

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

// Если логин подтвержден, программа пользователя продолжит работу

3 голосов
/ 02 февраля 2012

Вы можете просто добавить статический блок в вашу программу, где вы будете выполнять аутентификацию, этот статический блок всегда выполняется перед основным методом. Если пользователь не действителен, перейдите с

System.exit(0);

для выхода из программы. В противном случае программа начнет выполнение как обычно.

Вот один пример программы, чтобы дать вам некоторое представление:

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();
            }
        });
    }
}
2 голосов
/ 02 февраля 2012
      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("");                       
        }  
...