Примечание: это должен был быть комментарий, но он слишком длинный для этого.Подумайте над тем, чтобы дать ответы на вопросы в связанной ветке
Как уже указывалось mKorbel, в getText () и getPassword () идет довольно полное обсуждение.
Кроме того, прочитайте учебник Swing о JPasswordField
, который содержит хороший пример того, как вы должны сравнивать пароль (сравнивая массивы char, а не преобразовывая массив char в a String
) - небольшая копия вставки из учебника:
private static boolean isPasswordCorrect(char[] input) {
boolean isCorrect = true;
char[] correctPassword = { 'b', 'u', 'g', 'a', 'b', 'o', 'o' };
if (input.length != correctPassword.length) {
isCorrect = false;
} else {
isCorrect = Arrays.equals (input, correctPassword);
}
//Zero out the password.
Arrays.fill(correctPassword,'0');
return isCorrect;
}
Причину, по которой вам следует сравнивать массивы символов, хорошо объясняет Hovercraft Full Of Eels в его ответ в связанном вопросе SO в начале этого ответа.