如果输入的密码或用户名不正确,如何循环播放

时间:2014-09-15 03:00:53

标签: java loops user-interface if-statement login

如果输入的密码或用户名不正确并且只尝试3次,我该如何循环播放?

public void keyPressed(KeyEvent e) {            
    if (e.getKeyChar() == KeyEvent.VK_ENTER) {

        if (userTf.getText().equals(dat.getUserName()) & passTf.getText().equals(dat.getPassWord())) {
            JOptionPane.showMessageDialog(null,"Hello You are an Authorized User!!!",null,JOptionPane.INFORMATION_MESSAGE);         
            System.exit(1);          
        } else {
            JOptionPane.showMessageDialog(null,"Incorrect Password or Username!!!",null,JOptionPane.WARNING_MESSAGE);               
        }           
    }   
}

1 个答案:

答案 0 :(得分:4)

假设这只是普通的旧Java(不是Android或使用特定的框架),你有几个选择......

您可以在此方法之外创建标记 (但可以从方法中查看),以跟踪用户登录的次数失败。然后,当调用keyPressed活动时,您的代码应检查用户是否已达到最大尝试次数并执行相应的操作。

以下是全局标志和允许登录失败的最大设置数的一个想法。

public class MyClass {
    private int logInAttempts = 0;
    private final int MAX_LOGIN_ATTEMPTS = 3;

....
}

然后在你的方法中它看起来像这样:

public void keyPressed(KeyEvent e) {            
  if (e.getKeyChar() == KeyEvent.VK_ENTER) {
     if(logInAttempts == MAX_LOGIN_ATTEMPTS) {
        // they've failed to login too many times
        // lock them out, start a timer, or whatever
    } else {
     // go on to check if login is correct
    if (userTf.getText().equals(dat.getUserName()) & passTf.getText().equals(dat.getPassWord())) {
        JOptionPane.showMessageDialog(null,"Hello You are an Authorized User!!!",null,JOptionPane.INFORMATION_MESSAGE);         
        System.exit(1);          
    } else {
        // if using a flag for login attempts, you need to increment it
        // when the user fails logging in
        logInAttempts++;
        JOptionPane.showMessageDialog(null,"Incorrect Password or Username!!!",null,JOptionPane.WARNING_MESSAGE);               
    }           
}   

}

请注意如果您使用此标记理念来跟踪用户登录尝试失败,则需要在用户登录失败时将其递增,因为我之前已做过"不正确的密码或用户名!!!!"

我希望有所帮助!