Я пытаюсь сопоставить два JPassWordFields в событии KeyPress, когда я набираю пароль в первом JPassWordField, он немедленно возвращает значение каждой буквы (я напечатал вывод char[], чтобы убедиться), но когда я набираю тот же пароль или любой пароль, это бывает:
при первом нажатии клавиши он возвращает пустой массив символов (например, если я нажал «e», он возвращает [])
при 2-м нажатии клавиши он возвращает значение буквы, которая была нажата при 1-м нажатии клавиши (например, если я нажал «y», он возвращает «e» предыдущую букву, и вывод будет [e])
при 3-м нажатии клавиши он возвращает значение буквы, которая была нажата при 2-м нажатии клавиши (например, если я нажал «s», он возвращает «y» предыдущую букву, и вывод будет [e, y])
и так далее ....
поэтому предположим, что я ввел «eysa» в качестве пароля в первом JPassWordField, я должен ввести «eysaa» во втором JPassWordField, чтобы иметь совпадающий вывод char[] обоих
и если я заменю второй пароль на "eysa", статус совпадения останется верным -_-
Помогите, пожалуйста, у меня кружится голова от поиска здесь сообщения о нажатии клавиши, которое я использую:
private void pfRCodeKeyTyped(java.awt.event.KeyEvent evt) {
mat = pfCode.getPassword();
tmp = pfRCode.getPassword();
if (!(Arrays.equals(mat,null) || Arrays.equals(tmp,null))) {
if (!Arrays.equals(tmp, mat)) {
jLWRC.setForeground(Color.red);
jLWRC.setText("No Match");
} else {
jLWRC.setForeground(Color.green);
jLWRC.setText("Match, password accepted");
}
} else {
jLWRC.setText("password field Empty");
}
}