-5

好的。我正在制作一个用于在计算机上进行管理的软件。使人们能够根据他们的许可登录并做一些事情。到目前为止,我拥有的是一个由所有用户组成的阵列系统,其中包含用户名、密码和权限。我想要做的是从一个java swing窗口(我已经在其中编程)并将该窗口中的用户名和密码与所有数组进行比较并检查匹配。任何帮助将不胜感激。谢谢。我的代码:

public class Main {
public static void main(String[]args){
    WindowLogin.openWindow();
}
}

public class Database {
public static String[] userAdmin = {"admin","admin","10"}; //Username password clearance
public static String[] userAlexander = {"Alexander","1234","1"}; //Same stuff here
}


import javax.swing.*;

import java.awt.*;

public class WindowLogin {
public static void openWindow(){
    JFrame f = new JFrame("Login");
    JTextField userName = new JTextField(20);
    JPasswordField password = new JPasswordField();
    JPanel info = new JPanel(new GridLayout(2,1,5,5));
    JPanel lnPanel = new JPanel(new GridLayout(1,1,5,5));
    JButton lnButton = new JButton("Log in");
    info.add(userName);
    info.add(password);
    lnPanel.add(lnButton);
    f.setLayout(new FlowLayout());
    f.setResizable(false);
    f.add(info);
    f.add(lnPanel);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.pack();
    f.setVisible(true);
}
}
4

2 回答 2

1

一、创建对象用户

class User{
String username;
String password;
boolean isAdmin;

public User(String username, String password,boolean isAdmin){
this.username=username;
this.password=password;
this.isAdmin=isAdmin;
}
//setters and getters;
}

其次,将您的用户不在列表中,而是在地图Map<String,User> userMap中,其中键将是用户名,因此当 sb 将登录到系统时,

public int logIn(String username, String password)
{
User user = userMap.get(username);
if (user==null
{
//No User with given username, return error code 1;
return 1;
}

if (password==user.getPassword().equals(password))
{
//password correct, error code - no error
return 0;

}
//password incorrect return error code 2
return 2

}

现在我们所需要的就是初始化你的database

class Database {
Map<String,User> userMap = new HashMap();

{
User admin = new User("admin","admin",true);
User alex= new User("Alexander","1234",false);
userMap.put(admin.getName(),admin);
userMap.put(alex.getName(),alex);
}
}
于 2013-11-01T12:16:43.283 回答
1

这就是您可以实现这一目标的方法。

String inputUserName = userName.getText();  //assign the user's input username
String inputPassword = password.getText();  //assign the user's input password

if(inputUserName.equals(userAdmin[0]) && inputPassword.equals(userAdmin[1])){
     System.out.println("Welcome Admin!");
}else if(inputUserName.equals(userAlexander [0]) && inputPassword.equals(userAlexander[1])){
     System.out.println("Welcome Alexander!");
}else{
     System.out.println("Unauthorized access");
}

另一方面,建议您创建一个 User 类型来捆绑与用户相关的信息,而不是使用数组。

于 2013-11-01T12:00:14.557 回答