Как и во всех других ответах, JPasswordField возвращает символ [] при вызове метода getPassword ().Тем не менее, способ, которым я установил это в моей образцовой форме входа в систему, - у меня есть метод для проверки ввода.У меня есть два массива для хранения имен пользователей [] и паролей [], а затем у меня есть ввод имени пользователя и ввод пароля.Ввод пароля в моем методе изменяет char [] на строку перед продолжением, вы можете сделать это следующим образом:
String PasswordTyped = new String(_pwd.getPassword());
Затем возьмите эту строку и поместите ее в свой оператор if:
if (_uid.equals("Nathan") && PasswordTyped.equals("password") {
JOptionPane.showMessageDialog(null, "Congrats, you logged in as Nathan");
}
Однако, как я уже упоминал, мой метод проверки запускается на двух массивах имен пользователей [] и паролей [], при этом в качестве входных данных принимаются строка и символ [].Я скопирую и вставлю свой метод, чтобы вы могли включить его, если хотите:
public static void validate(String u, Char[] pass) {
String password = new String(pass);
boolean uGood = false;
String[] usernames = new String[2];
String[] passwords = new String[usernames.length];
usernames[0] = "Don";
passwords[0] = "password";
usernames[1] = "Jared";
passwords[1] = "password";
for (int i = 0; i < usernames.length; i++) {
if (usernames[i].equals(u) && passwords[i].equals(password)) {
uGood = true;
}
}
if (uGood) {
System.out.println("Hooray, you did it!");
}
else {
JOptionPane.showMessageDialog(null, "Incorrect Username\nand/or Password.");
}
}
Наконец, вы бы вызвали этот метод проверки, набрав:
validate(_uid.getText(), _pwd.getPassword());