我目前正在讨论如何创建一个登录算法,该算法将基于两个HashMap对象(即学生和来自DataStorage类的StaffMembers )来登录用户,我不知道在从LoginHandler()获得文本输入之后,我应该如何处理它们才能将其与我的DataStorage进行比较。
/*类数据存储*/
public class DataStorage
{
HashMap<String, Student> students = new HashMap<String, Student>();
HashMap<String, Staff> staffMembers = new HashMap<String, Staff>();
//Default constructor
public DataStorage(){
}
public void addStaffMember(Staff aAcc)
{
staffMembers.put(aAcc.getAccID(),aAcc);
}
public void addStudentMember(Student aAcc)
{
students.put(aAcc.getAccID(),aAcc);
}
public Staff getStaffMember(Staff aAcc)
{
return staffMembers.get(aAcc.getAccID());
}
public Student getStudent(Student aAcc)
{
return students.get(aAcc.getAccID());
}
public Account authUser(String user, String pass)
{
}
}/*类帐户*/
public class Account {
private String name;
private String department;
private String username;
private String password;
private String accountID;
public Account()
{
}
public Account(String nm,String dep,String user,String pass, String accID)
{
name = nm;
department = dep;
username = user;
password = pass;
accountID = accID;
}
public void setName(String nm)
{
name = nm;
}
public String getName()
{
return name;
}
public void setDep(String d)
{
department = d;
}
public String getDep()
{
return department;
}
public void setUser(String u)
{
username = u;
}
public String getUser()
{
return username;
}
public void setPass(String p)
{
password = p;
}
public String getPass()
{
return password;
}
public void setAccID(String a)
{
accountID = a;
}
public String getAccID()
{
return accountID;
}
}/*类员工扩展帐户*/
public class Staff extends Account {
public Staff(String n, String id, String dep, String user, String pass)
{
super(n, dep, user, pass, id);
}
}/**类学生扩展帐户**/
public class Student extends Account {
private String studentNRIC;
public Student(String n, String nr, String id, String dep, String user, String pass)
{
super(n, dep, user, pass, id);
studentNRIC = nr;
}
public void setStudentNRIC(String nr)
{
studentNRIC = nr;
}
public String getStudentNRIC()
{
return studentNRIC;
}
}/*类loginHandler,它将处理登录按钮/
class LoginHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String tempUser;
String tempPass;
tempUser = txfUser.getText();
tempPass = txfPass.getText();
}
}发布于 2010-02-12 20:32:20
首先,您应该将DataStorage中的getter更改为具有字符串参数,以便可以根据学生(或工作人员)的帐户ID查找她:
public Student getStudent(String aAcc)
{
return students.get(aAcc);
}然后可以在actionPerformed中查找用户名,如
Student student = dataStorage.getStudent(tempUser);
if (student != null && student.getPass().equals(tempPass))
{
// login successful
...
} else {
// Login failed - display error message
}工作人员也是如此。
https://stackoverflow.com/questions/2253225
复制相似问题