[Estou usando Netbeans 6.9, swing, jdbc, dao)
O JTable (que carregada os dados do BD) apresenta 3 colunas (id, login e senha).
Dados da coluna 'senha' não são mostradas.
Seleciono uma linha a ser alterada, clico em um JButton e abre-se um JDialog com os dados da linha selecionada, onde digita-se:
- (JTextFields): login / senha atual / senha nova / confirmação de senha nova.
Ao clicar em JButtonSalvar, quero antes fazer a validação de login/senha (para garantir que aquele usuário poderá alterar apenas o seu próprio login/senha). E é isso que não estou conseguindo fazer funcionar.
Eis os trechos dos códigos pertinentes a questão:private void btSalvarUserActionPerformed(java.awt.event.ActionEvent evt) {
// Quero comparar a senha correspondente ao do login que foi selecionado na JTable, mas a senha não aparece lá. Tenho que fazer uma consulta "interna" via DAO e retornar a senha daquele login e/ou id.
try {
// criei esses métodos getPassLogin(String) localizados no DAO, mas não funcionou:
if (!(txtPsw1.getText().equals((usrDAO.getPassLogin(x)).toString()))) // verifica se o usuário digitou a senha do login selecionado
{
JOptionPane.showMessageDialog(this, "A senha atual não confere.", "Validação", JOptionPane.WARNING_MESSAGE);
return;
}
} catch (SQLException ex) {
Logger.getLogger(alterUserDialog.class.getName()).log(Level.SEVERE, null, ex);
}
int result = JOptionPane.showConfirmDialog(this, "Confirma os dados ?");
if (result != 0) {
return;
}
try { // este trecho não é executado
usrInEdit.setLogin(txtUser.getText()); // captura o login validado
usrInEdit.setPsw(txtPsw3.getText()); // captura a senha validada
usrDAO.updateUser(usrInEdit); // atualiza o BD via DAO
JOptionPane.showMessageDialog(this, "Dados alterados com sucesso.");
} catch (Exception ex) {
ex.printStackTrace();
}
}