2017-12-02 100 views
0

嗨我有一個代碼,我註冊帳戶,讓註冊帳戶輸入我的代碼使用它,但現在與ActionPerformed即使信息無效代碼打開我想限制沒有帳戶的新框架。我不知道如何才能將我的if e.getSource()的條件設置爲僅在登錄有效時纔會打開,並且沒有其他內容感謝您提前尋求幫助Java登錄其他框架只有如果它是正確的

編輯:同時框架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;     
       } 
      } 

回答

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) { 
    ... 
} 
相關問題