Buenas,
Bom, a lógica do programa é que se eu cair no campo CONFIRMA SENHA ele deve dar um aviso pra digitar a senha no campo acima e somente depois pode digitar no campo CONFIRMA SENHA, acontece que quando eu caio no FocusGained do 'TFConfirmaUsuarioSenha()' ele da o aviso e cai no FOCUS GAINED do 'TFUsuarioSenha()' que por sua vez não tem nada dentro mas ai ele fica dando o aviso sempre, eu só nao entendi pq ele da esse aviso, deveria dar a possibilidade de eu digitar a senha no campo de cima, certo? ou esse grabFocus(); não faz o que eu imagino que faca (coloca o foco no campo)??
Segue o código:
private JTextField TFUsuarioSenha() {
usuarioSenha = new JPasswordField();
usuarioSenha.setBounds(90, 100, 80, 20);
usuarioSenha.addFocusListener(new FocusListener() {
@SuppressWarnings("deprecation")
public void focusLost(FocusEvent arg0) {
if (usuarioSenha.getText().trim().length() > 10) {
JOptionPane.showMessageDialog(null, "Campo só aceita 10 caracteres");
usuarioSenha.grabFocus();
}
}
public void focusGained(FocusEvent arg0) {
}
});
return usuarioSenha;
}
private JTextField TFConfirmaUsuarioSenha() {
confirmaUsuarioSenha = new JPasswordField();
confirmaUsuarioSenha.setBounds(90, 130, 80, 20);
confirmaUsuarioSenha.addFocusListener(new FocusListener() {
@SuppressWarnings("deprecation")
public void focusLost(FocusEvent arg0) {
if (confirmaUsuarioSenha.getText().trim().length() > 10) {
JOptionPane.showMessageDialog(null, "Campo só aceita 10 caracteres");
confirmaUsuarioSenha.grabFocus();
} else {
if (usuarioSenha.getText().trim().length() > 0) {
if (! usuarioSenha.equals(confirmaUsuarioSenha)) {
JOptionPane.showMessageDialog(null, "Senhas não são iguais \n Certifique-se que a tecla CAPS LOCK está desligada!");
confirmaUsuarioSenha.setText("");
confirmaUsuarioSenha.grabFocus();
}
}
}
}
@SuppressWarnings("deprecation")
public void focusGained(FocusEvent arg0) {
if (usuarioSenha.getText().trim().length() == 0) {
JOptionPane.showMessageDialog(null, "Digite a senha no campo 'Senha' antes!");
usuarioSenha.grabFocus();
}
}
});
return confirmaUsuarioSenha;
}