为什么我的密码验证不起作用 Java?
Why is my password validation not working Java?
我的登录屏幕上有一个密码字段。出于某种原因,当我输入正确的密码 "u123" 时,即使它是正确的,它也会给我错误的密码错误消息。为什么要这样做。
我的代码如下:
btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
char[] userInput = passwordField.getPassword();
char[] correctPassword = { 'u', '1', '2', '3'};
if (userInput.equals(correctPassword)) {
JOptionPane.showMessageDialog(LoginScreen.this,
"Success! You typed the right password.");
} else {
JOptionPane.showMessageDialog(LoginScreen.this,
"Invalid password. Try again.",
"Error Message",
JOptionPane.ERROR_MESSAGE);
}
}
});
我知道这可能不是检查密码的最佳方式,但我只是一个初学者,只是想练习一下。
您的代码有:
char[] userInput = passwordField.getPassword();
char[] correctPassword = { 'u', '1', '2', '3'};
这是两个不同的字符数组。
所以这个测试 returns false :
if (userInput.equals(correctPassword))
相反,尝试使用 Arrays.equals() 方法
if (Arrays.equals(userInput, correctPassword)) { ... }
我的登录屏幕上有一个密码字段。出于某种原因,当我输入正确的密码 "u123" 时,即使它是正确的,它也会给我错误的密码错误消息。为什么要这样做。
我的代码如下:
btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
char[] userInput = passwordField.getPassword();
char[] correctPassword = { 'u', '1', '2', '3'};
if (userInput.equals(correctPassword)) {
JOptionPane.showMessageDialog(LoginScreen.this,
"Success! You typed the right password.");
} else {
JOptionPane.showMessageDialog(LoginScreen.this,
"Invalid password. Try again.",
"Error Message",
JOptionPane.ERROR_MESSAGE);
}
}
});
我知道这可能不是检查密码的最佳方式,但我只是一个初学者,只是想练习一下。
您的代码有:
char[] userInput = passwordField.getPassword();
char[] correctPassword = { 'u', '1', '2', '3'};
这是两个不同的字符数组。
所以这个测试 returns false :
if (userInput.equals(correctPassword))
相反,尝试使用 Arrays.equals() 方法
if (Arrays.equals(userInput, correctPassword)) { ... }