如果输入的密码或用户名不正确并且只尝试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);
}
}
}
答案 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);
}
}
}
请注意如果您使用此标记理念来跟踪用户登录尝试失败,则需要在用户登录失败时将其递增,因为我之前已做过"不正确的密码或用户名!!!!"
我希望有所帮助!