我试图在 KeyPress 事件中匹配两个 JPassWordField,当我在第一个 JPassWordField 中输入密码时,它会立即返回每个字母的值(我打印了 char[] 输出以确保)但是当我输入相同的密码或任何密码时发生 :
在第一次击键时,它返回空字符数组(例如,如果我按下“e”它返回 [])
在第二次击键时,它返回在第一次击键时按下的字母的值(例如,如果我按下“y”,则返回“e”前一个字母,输出为 [e])
在第 3 次击键时,它返回在第 2 次击键时按下的字母的值(例如,如果我按下“s”,则返回“y”前一个字母,输出为 [e,y])
等等 ....
所以假设我在第一个 JPassWordField 中输入“eysa”作为密码,我必须在第二个 JPassWordField 中输入“eysa”才能获得两者的匹配 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");
}
}