Cara acho que descobri o problema. Parece que a tableModel que eu construo não é a mesmo que aparece na tabela, pois quando eu insiro um dado e logo após vou atualizar o mesmo dado ele atualiza. Então tudo parace que o erro está na classe comprasGUI.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vew;
import controle.ClienteDao;
import controle.CompraDao;
import controle.ComprasTableModel;
import java.awt.Dimension;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.dominio.Cliente;
import model.dominio.Compra;
/**
*
* @author User
*/
public class ComprasGUI extends javax.swing.JInternalFrame {
public static ComprasTableModel dtm;
public static int id;
/**
* Creates new form ComprasGUI
*/
public ComprasGUI() throws SQLException {
initComponents();
preencherComboClientes();
getRootPane().setDefaultButton(bPesquisar);
}
//janela no centro
public void setPosicao(){
Dimension d = this.getDesktopPane().getSize();
this.setLocation(15+(d.width - this.getSize().width)/5, 15+(d.height - this.getSize().height)/5);
}
//acionamento da tecla enter
public static String cpf(String cpf){
String bloco1 = cpf.substring(0, 3);
String bloco2 = cpf.substring(3, 6);
String bloco3 = cpf.substring(6, 9);
String bloco4 = cpf.substring(9, 11);
cpf = bloco1+"."+bloco2+"."+bloco3+"-"+bloco4;
return cpf;
}
public static String telefoneFormatado(String cpf){
String bloco1 = cpf.substring(0, 3);
String bloco2 = cpf.substring(3, 7);
String bloco3 = cpf.substring(7, 11);
cpf = "("+bloco1+") "+bloco2+"-"+bloco3;
return cpf;
}
//preencher combobcox
public void preencherComboClientes() throws SQLException{
List<Cliente> lista = new ClienteDao().listarTodos();
cbClientes.removeAllItems();
cbClientes.setAutocompletar(true);
for(Cliente cliente : lista){
cbClientes.addItem(cliente.getNome());
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
bFechar = new javax.swing.JToggleButton();
jScrollPane1 = new javax.swing.JScrollPane();
tabelaCompras = new javax.swing.JTable();
bNovo = new javax.swing.JButton();
bAlterar = new javax.swing.JToggleButton();
bExcluir = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
tfPesqCPF = new javax.swing.JTextField();
bPesquisar = new javax.swing.JButton();
cbClientes = new componentes.UJComboBox();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
tfCliente = new javax.swing.JTextField();
tfCPF = new javax.swing.JTextField();
tfCod = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
bOK = new javax.swing.JButton();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
tfEndereco = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
tfTelefone = new javax.swing.JTextField();
setTitle("Fichas Dn Zefinha - Compras");
bFechar.setText("fechar");
bFechar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bFecharActionPerformed(evt);
}
});
tabelaCompras.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Descricao", "Quant", "Valor", "Data"
}
));
jScrollPane1.setViewportView(tabelaCompras);
bNovo.setText("Nova Compra");
bNovo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bNovoActionPerformed(evt);
}
});
bAlterar.setText("Alterar Compra");
bAlterar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bAlterarActionPerformed(evt);
}
});
bExcluir.setText("Excluir Compra");
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Pesquisa Cliente"));
jLabel1.setText("Nome:");
jLabel2.setText("ou");
jLabel3.setText("CPF:");
bPesquisar.setText("Pesquisar");
bPesquisar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bPesquisarActionPerformed(evt);
}
});
cbClientes.setEditable(true);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(bPesquisar)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbClientes, javax.swing.GroupLayout.PREFERRED_SIZE, 367, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel2)
.addGap(32, 32, 32)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tfPesqCPF, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(39, 39, 39))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(tfPesqCPF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbClientes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 17, Short.MAX_VALUE)
.addComponent(bPesquisar))
);
jLabel4.setText("Cliente:");
jLabel5.setText("CPF");
tfCliente.setBackground(new java.awt.Color(204, 204, 204));
tfCliente.setEditable(false);
tfCliente.setForeground(new java.awt.Color(0, 0, 153));
tfCPF.setBackground(new java.awt.Color(204, 204, 204));
tfCPF.setEditable(false);
tfCPF.setForeground(new java.awt.Color(0, 0, 153));
tfCod.setBackground(new java.awt.Color(204, 204, 204));
tfCod.setEditable(false);
tfCod.setForeground(new java.awt.Color(0, 0, 153));
jLabel6.setText("Cod:");
bOK.setText("OK");
bOK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bOKActionPerformed(evt);
}
});
jLabel7.setText("Compras do Cliente:");
jLabel8.setText("Endereço:");
tfEndereco.setBackground(new java.awt.Color(204, 204, 204));
tfEndereco.setEditable(false);
tfEndereco.setForeground(new java.awt.Color(0, 0, 153));
jLabel9.setText("Telefone:");
tfTelefone.setBackground(new java.awt.Color(204, 204, 204));
tfTelefone.setEditable(false);
tfTelefone.setForeground(new java.awt.Color(0, 0, 153));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfCod, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfCliente, javax.swing.GroupLayout.PREFERRED_SIZE, 378, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4)))
.addComponent(jLabel8)
.addComponent(tfEndereco, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel7))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel9)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfCPF, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(tfTelefone)
.addGap(18, 18, 18)
.addComponent(bOK)))))
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 0, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(bNovo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(bAlterar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bExcluir)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(bFechar)))
.addGap(0, 26, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfCliente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfCPF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfCod, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(jLabel9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfTelefone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bOK))
.addGap(24, 24, 24)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 241, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(35, 35, 35)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bNovo)
.addComponent(bAlterar)
.addComponent(bExcluir))
.addGap(11, 11, 11)
.addComponent(bFechar)
.addGap(60, 60, 60))
);
pack();
}// </editor-fold>
private void bFecharActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
private void bPesquisarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String nome = (String) cbClientes.getSelectedItem();
String cpf = tfPesqCPF.getText();
try {
List <Cliente> lista = new ClienteDao().pesquisarCliente(nome, cpf);
for(Cliente cliente: lista ){
tfCod.setText(Long.toString(cliente.getIdCliente()));
tfCliente.setText(cliente.getNome());
tfCPF.setText(cpf(cliente.getCpf()));
tfEndereco.setText(cliente.getEndereco());
tfTelefone.setText(telefoneFormatado(cliente.getTelefone()));
}
bOK.grabFocus();
} catch (SQLException ex) {
Logger.getLogger(ComprasGUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void bOKActionPerformed(java.awt.event.ActionEvent evt) {
try {
// pesquisar tabelaCompras
id = Integer.parseInt(tfCod.getText());
List<Compra> lista = new CompraDao().listarTodos(id);
dtm = new ComprasTableModel(lista);
tabelaCompras.setModel(dtm);
} catch (SQLException ex) {
Logger.getLogger(ComprasGUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void bNovoActionPerformed(java.awt.event.ActionEvent evt) {
// nova compra
ManipulacaoComprasGUI manipulacaoComprasGUI = new ManipulacaoComprasGUI();
PrincipalGUI.jDesktopPane1.add(manipulacaoComprasGUI);
manipulacaoComprasGUI.setPosicao();
manipulacaoComprasGUI.setVisible(true);
manipulacaoComprasGUI.setNovo(1);
}
private void bAlterarActionPerformed(java.awt.event.ActionEvent evt) {
// Código para alterar a compra
ManipulacaoComprasGUI manipulacaoComprasGUI = new ManipulacaoComprasGUI();
PrincipalGUI.jDesktopPane1.add(manipulacaoComprasGUI);
manipulacaoComprasGUI.setPosicao();
manipulacaoComprasGUI.preecher();
manipulacaoComprasGUI.setVisible(true);
manipulacaoComprasGUI.setNovo(0);
}
// Variables declaration - do not modify
private javax.swing.JToggleButton bAlterar;
private javax.swing.JButton bExcluir;
private javax.swing.JToggleButton bFechar;
private javax.swing.JButton bNovo;
private javax.swing.JButton bOK;
private javax.swing.JButton bPesquisar;
private componentes.UJComboBox cbClientes;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
public static javax.swing.JTable tabelaCompras;
private javax.swing.JTextField tfCPF;
private javax.swing.JTextField tfCliente;
private javax.swing.JTextField tfCod;
private javax.swing.JTextField tfEndereco;
private javax.swing.JTextField tfPesqCPF;
private javax.swing.JTextField tfTelefone;
// End of variables declaration
}