Cordiais saudações.
Estou meio perdido nesta classe (GuiCadForProduto.java). Ela deveria gravar o Id do produto mas este campo fica em branco. Fiz todo tipo de teste com System.out.println para descobrir onde está o problema e de fato percebi que em diversos pedaços do programa o campo não está em branco mas na hora de gravar ele fica em branco misteriosamente. Gostaria de pedir a ajuda do pessoal do Guj para debugar esse programa. Obrigado.
O objeto model Produtos é um registro dos produtos e é passado para a classe em questão. Qualquer dúvida que possa esclarecer o funcionamento da classe é só perguntar, mas tem coisas que eu não sei. Essa classe cria um vinculo entre um produto e seu fornecedor. Segue abaixo o programa da classe:
package view;
import controller.ControllerCadForProduto;
import empresaiv.Util;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
import model.Fornecedores;
import model.ModelCadForProduto;
import model.Produtos;
/**
*
* @author Ronaldo R. Godoi
*/
public class GuiCadForProduto extends javax.swing.JFrame {
ControllerCadForProduto cCFProduto = new ControllerCadForProduto();
ModelCadForProduto mCFProduto = new ModelCadForProduto();
ArrayList<Fornecedores> listaModelFornecedor = new ArrayList<>();
Util util = new Util();
Date nova_data = new Date();
DateFormat formatoData = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
/**
* Creates new form GuiCadForProduto
*/
public GuiCadForProduto(Produtos mProduto) {
initComponents();
inicializaProduto(mProduto);
System.out.println("Id produto: (dois) " + tfId.getText());
setLocationRelativeTo(null);
}
/**
* 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() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jScrollPane2 = new javax.swing.JScrollPane();
jTable2 = new javax.swing.JTable();
lbTitulo_cad_for_produto = new javax.swing.JLabel();
lbId = new javax.swing.JLabel();
lbId_produto = new javax.swing.JLabel();
lbId_fornecedor = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
lbData_compra = new javax.swing.JLabel();
lbData_cadastro = new javax.swing.JLabel();
tfId = new javax.swing.JTextField();
tfId_produto = new javax.swing.JTextField();
tfId_fornecedor = new javax.swing.JTextField();
tfPreco = new javax.swing.JTextField();
tfData_compra = new javax.swing.JTextField();
tfData_cadastro = new javax.swing.JTextField();
btNovo = new javax.swing.JButton();
btLocalizar = new javax.swing.JButton();
btAlterar = new javax.swing.JButton();
btGravar = new javax.swing.JButton();
btExcluir = new javax.swing.JButton();
btCancelar = new javax.swing.JButton();
btFechar = new javax.swing.JButton();
lbDescricao_produto = new javax.swing.JLabel();
lbNome_razao_fornecedor = new javax.swing.JLabel();
jScrollPane3 = new javax.swing.JScrollPane();
jTable3 = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
lbNomeFornecedor = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
lbNomeProduto = new javax.swing.JLabel();
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
jTable2.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane2.setViewportView(jTable2);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
lbTitulo_cad_for_produto.setText("Cadastro de Fornecedores deste Produto");
lbId.setText("Codigo de Cadastro: ");
lbId_produto.setText("Código de Produto: ");
lbId_fornecedor.setText("Código de Fornecedor: ");
jLabel5.setText("Preço Praticado pelo Fornecedor: ");
lbData_compra.setText("Data da Compra: ");
lbData_cadastro.setText("Data de Cadastro neste Produto: ");
tfId.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tfIdActionPerformed(evt);
}
});
tfId.setEditable(false);
tfId_produto.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tfId_produtoActionPerformed(evt);
}
});
tfId_produto.setEditable(false);
btNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/novo.gif"))); // NOI18N
btNovo.setText("Novo");
btNovo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btNovoActionPerformed(evt);
}
});
btLocalizar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/localizar.png"))); // NOI18N
btLocalizar.setText("Localizar");
btAlterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/alterar.gif"))); // NOI18N
btAlterar.setText("Alterar");
btAlterar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btAlterarActionPerformed(evt);
}
});
btGravar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/gravar.gif"))); // NOI18N
btGravar.setText("Gravar");
btGravar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btGravarActionPerformed(evt);
}
});
btExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/excluir.gif"))); // NOI18N
btExcluir.setText("Excluir");
btCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/cancelar.gif"))); // NOI18N
btCancelar.setText("Cancelar");
btFechar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/sair.png"))); // NOI18N
btFechar.setText("Sair");
btFechar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btFecharActionPerformed(evt);
}
});
lbDescricao_produto.setText("Produto: ");
lbNome_razao_fornecedor.setText("Fornecedor: ");
jTable3.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Codigo Fornecedor", "Nome ou Razão", "Telefone", "Cidade", "Estado"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane3.setViewportView(jTable3);
jLabel1.setText("Tabela de Fornecedores deste Produto:");
jLabel2.setText("jLabel2");
jLabel3.setText("jLabel3");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(btNovo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btLocalizar)
.addGap(9, 9, 9)
.addComponent(btGravar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btAlterar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btExcluir)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btCancelar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btFechar, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfPreco, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(37, 37, 37)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbData_compra)
.addComponent(tfData_compra, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(65, 65, 65)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfData_cadastro, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbData_cadastro, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(tfId, javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(lbId_produto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tfId_produto))
.addComponent(lbDescricao_produto)))
.addComponent(lbId)
.addComponent(lbTitulo_cad_for_produto))
.addGap(85, 85, 85))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(lbNomeProduto, javax.swing.GroupLayout.PREFERRED_SIZE, 266, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addGroup(layout.createSequentialGroup()
.addGap(48, 48, 48)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbNome_razao_fornecedor)
.addComponent(lbId_fornecedor)
.addComponent(tfId_fornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbNomeFornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, 314, javax.swing.GroupLayout.PREFERRED_SIZE)))))))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 663, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 17, Short.MAX_VALUE)))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(38, 38, 38)
.addComponent(lbTitulo_cad_for_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(lbId)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tfId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(24, 24, 24)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbId_produto)
.addComponent(lbId_fornecedor))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfId_produto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfId_fornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbDescricao_produto)
.addComponent(lbNome_razao_fornecedor))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbNomeFornecedor, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbNomeProduto, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(lbData_compra)
.addComponent(lbData_cadastro))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfPreco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfData_compra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfData_cadastro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btNovo)
.addComponent(btLocalizar)
.addComponent(btAlterar)
.addComponent(btExcluir)
.addComponent(btCancelar)
.addComponent(btFechar)
.addComponent(btGravar))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(314, 314, 314)
.addComponent(jLabel2)
.addGap(18, 18, 18)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(325, 325, 325)
.addComponent(jLabel3)
.addGap(18, 18, 18))))
);
pack();
}// </editor-fold>
private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {
tfId_fornecedor.requestFocus();
tfId_fornecedor.addFocusListener(new FocusAdapter() {
public void focusLost(FocusEvent e) {
// TODO...
}
});
}
private void btFecharActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("Id produto: três " + this.tfId_produto.getText());
mCFProduto.setId_produto(this.tfId_produto.getText());
mCFProduto.setId_fornecedor(this.tfId_fornecedor.getText());
mCFProduto.setPreco(util.spaceToDouble(this.tfPreco.getText()));
mCFProduto.setData_compra(this.tfData_compra.getText());
mCFProduto.setData_cadastro(this.tfData_cadastro.getText());
if(cCFProduto.salvarCadForProdutoController(mCFProduto) > 0) {
JOptionPane.showMessageDialog(this, "Registro salvo com sucesso!", "Atenção", JOptionPane.WARNING_MESSAGE);
//carregar os fornecedores na tabela.
} else {
JOptionPane.showMessageDialog(this, "Erro ao salvar fornecedor!", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
// private void listaFornecedor() {
// listaModelFornecedor = cCFProduto.getListaCadForProdutoController();
// }
private void btAlterarActionPerformed(java.awt.event.ActionEvent evt) {
mCFProduto.setId_produto(this.tfId_produto.getText());
mCFProduto.setId_fornecedor(this.tfId_fornecedor.getText());
mCFProduto.setPreco(util.spaceToDouble(this.tfPreco.getText()));
mCFProduto.setData_compra(this.tfData_compra.getText());
mCFProduto.setData_cadastro(this.tfData_cadastro.getText());
if(cCFProduto.atualizarCadForProdutoController(mCFProduto)) {
JOptionPane.showMessageDialog(this, "Registro salvo com sucesso!");
//carregar os fornecedores na tabela.
} else {
JOptionPane.showMessageDialog(this, "Erro ao salvar fornecedor!", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
private void tfIdActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void tfId_produtoActionPerformed(java.awt.event.ActionEvent evt) {
}
// Variables declaration - do not modify
private javax.swing.JButton btAlterar;
private javax.swing.JButton btCancelar;
private javax.swing.JButton btExcluir;
private javax.swing.JButton btFechar;
private javax.swing.JButton btGravar;
private javax.swing.JButton btLocalizar;
private javax.swing.JButton btNovo;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel5;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTable jTable1;
private javax.swing.JTable jTable2;
private javax.swing.JTable jTable3;
private javax.swing.JLabel lbData_cadastro;
private javax.swing.JLabel lbData_compra;
private javax.swing.JLabel lbDescricao_produto;
private javax.swing.JLabel lbId;
private javax.swing.JLabel lbId_fornecedor;
private javax.swing.JLabel lbId_produto;
private javax.swing.JLabel lbNomeFornecedor;
private javax.swing.JLabel lbNomeProduto;
private javax.swing.JLabel lbNome_razao_fornecedor;
private javax.swing.JLabel lbTitulo_cad_for_produto;
private javax.swing.JTextField tfData_cadastro;
private javax.swing.JTextField tfData_compra;
private javax.swing.JTextField tfId;
private javax.swing.JTextField tfId_fornecedor;
private javax.swing.JTextField tfId_produto;
private javax.swing.JTextField tfPreco;
// End of variables declaration
private void inicializaProduto(Produtos mProduto) {
System.out.println("Id produto: quatro " + mProduto.getId());
tfId.setText(mProduto.getId());
tfData_cadastro.setText(formatoData.format(nova_data.getTime()));
tfData_compra.setText(mProduto.getData_cadastro());
lbNomeProduto.setText(mProduto.getDescricao());
tfPreco.setText(mProduto.getPreco_ultima_compra().toString());
}
}
Se for preciso a classe DAO eu mando depois, o site do Guj não permite mandar agora pois fica muito grande o arquivo.
Agradeço antecipadamente,
Ronaldo