Omissão do Id do produto na hora de gravar no MySQL

4 respostas
anyblueangel3

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

4 Respostas

Henrique_Guilherme

Oi novamente,

Analisei aqui o seguinte código:
1- Você inicia o método para preencher seus componentes vindo dos getters da classe Produtos objeto mProduto:

inicializaProduto(mProduto);

2 - Seu método ‘inicializaProduto’ está recebendo como parâmetro o ‘Produto mProduto’ e tem como intuito enviar para os componentes os valores recebidos dos getters de mProduto:

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());
    }

3 - Só que em seu botão GRAVAR você está enviando as informações de seu produto para os setters da classe ModelCadForProduto objeto mCFProduto:

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);
    }
}

Para ficar mais claro, nesse código que vc enviou tu não setou em nenhum momento os atributos de mProduto, e nem instanciou algum método que fizesse com que este fosse setado (tipo, instanciar seu DAO), pelo contrário só solicitou eles (seus getters).
Da uma olhada aí, qualquer coisa estou a disposição.

anyblueangel3

Os atributos de mProduto, que é um tipo de registro de um item de produtos do sistema, são settados quando a classe de cima (GuiCadastroProdutos.java) passa eles como parâmetro para GuiCadForProduto.java.

Em algum lugar o campo tfId_produto é zerado, não sei como, nem porque.

staroski

O ID do produto não deveria ser setado no tfId_produto?

Henrique_Guilherme

@staroski é o que expliquei acima.

Ele seta no tfId o mProduto.getID , mas não mostra de onde o mProduto.setID está vindo.

Os atributos de mProduto, que é um tipo de registro de um item de produtos do sistema, são settados quando a classe de cima (GuiCadastroProdutos.java) passa eles como parâmetro para GuiCadForProduto.java.

Você passa eles como parâmetro mas não atribuir valor algum para seus setters.

Criado 21 de abril de 2022
Ultima resposta 21 de abr. de 2022
Respostas 4
Participantes 3