@Fabricio_Costa escreveu:
Galera quem puder me tirar essa dúvida, procurei em vários tópicos e outros locais e não encontrei a resposta. Desde já muito obrigado pela ajuda.
No projeto preciso criar uma tabela e jogar os dados de dois ou mais objetos nessa tabela, criei o método com o select (inner join nas tabelas) que preciso na classe DAO, jogo na tabela e até ai tudo bem, o resultado está ok na jtable, o problema é na hora de alterar esses registros que são outros objetos de outras classes, no meu modo de pensar toda vez que eu altero um registro não é necessário recarregar a lista toda novamente e sim apenas atualizar aquela linha na jtable e no banco, toda vez que eu atualizo da erro na jtable e no banco está ok, criei a tabela com extends da AbstractTableModel e os métodos, mas estou enrolado nisso, alguém tem uma luz?
ou o método para atualizar?De forma mais simplificada, tenho um cadastro de clientes com os campos a serem preenchidos e o combobox de estado a ser selecionado, quando clico no botão Atualizar os campos de preenchimentos atualizam normalmente na jtable, mas quando mudo a opção do combobox da o erro de NullPointerExceptione não atualiza na jtable mas atualiza no banco.
//MÉTODO PARA ATUALIZAR UM REGISTRO DO BANCO - CLASSE DAO public void update(Pessoa pessoa, Uf uf) { try { String sql = "update tbl_pessoa set nome_pessoa = ?, idade_pessoa = ?, cod_uf = ? where cod_pessoa = ?"; PreparedStatement stmt = connection.prepareStatement(sql); stmt.setString(1, pessoa.getNome()); stmt.setInt(2, pessoa.getIdade()); stmt.setObject(3, uf.getCodUf()); stmt.setInt(4, pessoa.getCodigo()); stmt.execute(); stmt.close(); } catch (SQLException error) { throw new RuntimeException(error); } finally { try { connection.close(); } catch (SQLException ex) { Logger.getLogger(PessoaDAO.class.getName()).log(Level.SEVERE, null, ex); } } }//FIM DO MÉTODO ATUALIZAR private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) { // BOTÃO EDITAR try { int linha = this.TabelaPessoa.getSelectedRow(); Pessoa novaPessoa = new Pessoa(); novaPessoa.setNome(txtNome.getText()); novaPessoa.setIdade(Integer.parseInt(txtIdade.getText())); Uf uf = (Uf)Cbestado.getSelectedItem(); novaPessoa.setCodigo(Integer.parseInt(txtCodigo.getText())); PessoaDAO dao = new PessoaDAO(); dao.update(novaPessoa, uf); modelo.setValueAt(novaPessoa, linha); JOptionPane.showMessageDialog(null, "Registro alterado com sucesso!"); //BOTÕES NOVO, SALVAR, ATUALIZAR E EXCLUIR btnNovo.setEnabled(true); btnSalvar.setEnabled(false); btnEditar.setEnabled(false); btnExcluir.setEnabled(false); //FECHAR CAMPOS DO FORM fecharCampos(); } catch (Exception error) { throw new RuntimeException(error); } } //MÉTODO PARA ATUALIZAR A TABELA, ATRVÉS DO OBJ E SUA RESPECTIVA LINHA DA LISTA public void setValueAt(Pessoa aValue, int rowIndex){ linhas.set(rowIndex, aValue); fireTableRowsUpdated(rowIndex, rowIndex); }
Mensagens: 1
Participantes: 1