ログイン画面にパスワードフィールドがあります。何らかの理由で正しいパスワード("u123")を入力すると、正しくても間違ったパスワードエラーメッセージが表示されます。なぜこれをやっているのですか?パスワード検証がJavaで動作しないのはなぜですか?
コード私は以下があります:
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);
}
}
});
私は、これは、パスワードのチェックを行うための最善の方法ではないかもしれない知っているが、私はちょうど初心者だし、ちょうどいくつかの練習を取得しようとしています。
を使用しようか? – Thomas
@Thomasパスワードの文字列は[悪い]です(http://stackoverflow.com/questions/8881291/why-is-char-preferred-over-st-for-passwords?rq=1)。 –
'char []'を使うなら、 'Arrays.equals'を使ってみることができますか?ここに例があります(https://docs.oracle.com/javase/tutorial/uiswing/components/passwordfield.html) –