只有在正确的情况下,Java才能在其他框架中登录

时间:2017-12-02 23:01:10

标签: java validation action

您好我有一个代码,我注册帐户,然后让注册帐户输入我的代码使用它,但现在使用ActionPerformed即使信息无效,代码打开我想要限制的新框架没有帐户。我不知道如何在我的if e.getSource()条件下仅在登录有效时才打开,没有其他事先感谢您的帮助

编辑:同样框架MathoQuest在同一文件夹的同一时间弹出两个我不知道为什么

这是代码:

    public void actionPerformed(ActionEvent e){
     if(e.getSource()==btsubmit){
         String uname=txtnamereg.getText();
         String passw=new String(txtpasswordreg.getPassword());
         if(!checkBlank(uname,passw, lblnamereg,lblpasswordreg)){
             if(!checkExist("init.txt",uname)){
                 passw=new String(encrypt(passw));
                 String accinfo=uname+"-"+passw;
                 saveToFile("init.txt",accinfo);
             }
         }
     }
     else if(e.getSource()==btlogin){
        String uname=txtname.getText();
        String passw=new String(txtpassword.getPassword());
        if(!checkBlank(uname,passw,lblname,lblpassword))
            validateUser("init.txt",uname,passw);     
     }
     if (e.getSource() == btlogin ) {
         MathoQuest math = new MathoQuest();
         math.getContentPane();
         math.setVisible(true);
     }
   }

如果你想看看它是如何验证的,我会在这里包括所以你也可以有一个想法:

public void validateUser(String filename, String name, String password){
       FileReader fr;
       BufferedReader br;
       boolean valid=false;
       String accinfo;
       try{ 
           fr=new FileReader(filename);
           br=new BufferedReader(fr);
           while ((accinfo=br.readLine())!=null){

               if(check(accinfo,name,password)){

                   showMess("Login valide",lblmess);
                   valid=true;
                   break;                  
               }
           }

1 个答案:

答案 0 :(得分:2)

修改validateUser以返回布尔值,如果登录有效则返回true,否则返回false

然后使用返回的信息决定是否打开框架。

例如:

public boolean validateUser(String filename, String name, String password) {
    ...
    if(check(accinfo, name, password)) {
        return true;
    }
    ...
    return false
}

然后你可以这样称呼它:

boolean valid = validateUser("init.txt",uname,passw);
if(valid) {
     ...
}