我目前停留在如何创建一个登录算法上,该算法将基于2个HashMap对象(即DataStorage类中的Student和StaffMembers)登录用户,从LoginHandler()获取文本输入后,我不知道如何处理它们将其与我的DataStorage进行比较。

/ *类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();

  }

 }

最佳答案

首先,您应该将DataStorage中的getter更改为具有String参数,以便您可以根据学生(或工作人员)的帐户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
}


对于工作人员也是如此。

09-27 02:47