Boa tarde!
Pessoal to com um problema que não encontrei em nenhum topico e é bem estranho, pelo menos para min:
Tenho um JFrame com algum jtext e uma jTable e uma conexão com banco, precisava setar os dados da linha selecionada no Jtable (que carregas os dados de uma tabela) nos jText, fiz da seguinte maneira:
private void jTableClientesMouseClicked(java.awt.event.MouseEvent evt) { // evento do click do mause
int codigo = Integer.parseInt(jTableClientes.getModel().getValueAt(jTableClientes.getSelectedRow(), 0).toString());// pegar a referencia onde o usuario clickou
try {
conClientes.resultset.first();// posiciona no primeiro registro do resultset
while (conClientes.resultset.getInt("codigo")!=codigo){ // procura até que encontre no resultset coluna "codigo" o valor de referencia do click do usuario
conClientes.resultset.next(); // vai para o proximo registro do resultset
}
mostrarDados();// set os valores do resulSet nos jTextField
} catch (SQLException ex) {
Logger.getLogger(telaClientes.class.getName()).log(Level.SEVERE, null, ex);
}
}
O codigo ai encima faz uma consulta no resultset (que carrega a tabela clientes inteira) até achar um valor igual a linha e coluna selecionada na jTable.
O codigo acha o valor sem problemas, mas depois quando executo o metodo mostrarDados() que tem a seguinte linha:
public void mostrarDados() throws SQLException{
try{
jTextFieldCodigoClientes.setText(conClientes.resultset.getString("codigo"));// nesta linha ocorre o erro se eu a comentar os outros set funcionam normalmente
// ... existem n jTextField sendo setados todos funcionam normalmente menos este que realizo a consulta
} catch (SQLException ex) {
Logger.getLogger(telaClientes.class.getName()).log(Level.SEVERE, null, ex);
}
}
Aparentemente quando uso o método conClientes.resultset.getInt("codigo") ele limpa esta coluna do resultset. Ai quando tento setar ela da o erro "dados não encontrados". Ai quando eu comento esta linha tudo se resolve.
Bom se alguém poder me ajudar explicando por que ocorre isto!!
Grato,
Murillo Pontes