Cadastro de Clientes com GUI e MySQL

Publicado por Alex Inocencio Santos (última atualização em 04/05/2015)

[ Hits: 12.758 ]

Download JavaApplicationCadastroCliente.zip




Este script possui uma GUI criada no NetBeans 8.0.2 com conexão ao banco de dados MySQL.

  



Esconder código-fonte

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package apresentação;

import controle.Cliente;
import controle.Compra;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

/**
 *
 * @author alex
 */
public class JFrameClientes extends javax.swing.JFrame {

    /**
     * Creates new form JFrameClientes
     */
    public JFrameClientes() {
        initComponents();
    }

    /**
     * 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() {
        bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

        JavaApplicationCadastroClientePUEntityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("JavaApplicationCadastroClientePU").createEntityManager();
        clienteQuery = java.beans.Beans.isDesignTime() ? null : JavaApplicationCadastroClientePUEntityManager.createQuery("SELECT c FROM Cliente c");
        clienteList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(clienteQuery.getResultList());
        compraQuery = java.beans.Beans.isDesignTime() ? null : JavaApplicationCadastroClientePUEntityManager.createQuery("SELECT c FROM Compra c");
        compraList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(compraQuery.getResultList());
        jTabbedPaneCliente = new javax.swing.JTabbedPane();
        jPanelCliente = new javax.swing.JPanel();
        jLabelId = new javax.swing.JLabel();
        jLabelNome = new javax.swing.JLabel();
        jLabelCpf = new javax.swing.JLabel();
        jLabelEndereco = new javax.swing.JLabel();
        jLabelCidade = new javax.swing.JLabel();
        jLabelEstado = new javax.swing.JLabel();
        jTextFieldId = new javax.swing.JTextField();
        jTextFieldNome = new javax.swing.JTextField();
        jTextFieldCPF = new javax.swing.JTextField();
        jTextFieldEndereco = new javax.swing.JTextField();
        jTextFieldCidade = new javax.swing.JTextField();
        jTextFieldEstado = new javax.swing.JTextField();
        jButtonInserirCliente = new javax.swing.JButton();
        jButtonSalvarCliente = new javax.swing.JButton();
        jButtonCancelarCliente = new javax.swing.JButton();
        jButtonExcluirCliente = new javax.swing.JButton();
        jLabelCpfBusca = new javax.swing.JLabel();
        jTextFieldCpfBusca = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTableClientes = new javax.swing.JTable();
        jTextFieldCPFBusca = new javax.swing.JButton();
        jPanelCompras = new javax.swing.JPanel();
        jLabelIDCompra = new javax.swing.JLabel();
        jLabelData = new javax.swing.JLabel();
        jLabelDescricao = new javax.swing.JLabel();
        jLabelQtd = new javax.swing.JLabel();
        jLabelValorUnitario = new javax.swing.JLabel();
        jTextFieldCompraId = new javax.swing.JTextField();
        jFormattedTextFieldCompraData = new javax.swing.JFormattedTextField();
        jFormattedTextFieldCompraQtd = new javax.swing.JFormattedTextField();
        jFormattedTextFieldCompraPrcUnitario = new javax.swing.JFormattedTextField();
        jTextFieldCompraDescricao = new javax.swing.JTextField();
        jButtonCompraInserir = new javax.swing.JButton();
        jButtonCompraSalvar = new javax.swing.JButton();
        jButtonCompraCancelar = new javax.swing.JButton();
        jButtonCompraExcluir = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTableCompras = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        jTabbedPaneCliente.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT);

        jLabelId.setText("Id");

        jLabelNome.setText("Nome");

        jLabelCpf.setText("Cpf");

        jLabelEndereco.setText("Endereço");

        jLabelCidade.setText("Cidade");

        jLabelEstado.setText("Estado");

        org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableClientes, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.id}"), jTextFieldId, org.jdesktop.beansbinding.BeanProperty.create("text"));
        bindingGroup.addBinding(binding);

        jTextFieldId.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldIdActionPerformed(evt);
            }
        });

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableClientes, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.nome}"), jTextFieldNome, org.jdesktop.beansbinding.BeanProperty.create("text"));
        bindingGroup.addBinding(binding);

        jTextFieldNome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldNomeActionPerformed(evt);
            }
        });
        jTextFieldNome.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextFieldNomeKeyPressed(evt);
            }
        });

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableClientes, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.cpf}"), jTextFieldCPF, org.jdesktop.beansbinding.BeanProperty.create("text"));
        bindingGroup.addBinding(binding);

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableClientes, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.endereco}"), jTextFieldEndereco, org.jdesktop.beansbinding.BeanProperty.create("text"));
        bindingGroup.addBinding(binding);

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableClientes, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.cidade}"), jTextFieldCidade, org.jdesktop.beansbinding.BeanProperty.create("text"));
        bindingGroup.addBinding(binding);

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableClientes, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.estado}"), jTextFieldEstado, org.jdesktop.beansbinding.BeanProperty.create("text"));
        bindingGroup.addBinding(binding);

        jButtonInserirCliente.setText("Inserir");
        jButtonInserirCliente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonInserirClienteActionPerformed(evt);
            }
        });

        jButtonSalvarCliente.setText("Salvar");
        jButtonSalvarCliente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSalvarClienteActionPerformed(evt);
            }
        });

        jButtonCancelarCliente.setText("Cancelar");
        jButtonCancelarCliente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCancelarClienteActionPerformed(evt);
            }
        });

        jButtonExcluirCliente.setText("Excluir");
        jButtonExcluirCliente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonExcluirClienteActionPerformed(evt);
            }
        });

        jLabelCpfBusca.setText("Cpf Busca");

        org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, clienteList, jTableClientes);
        org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}"));
        columnBinding.setColumnName("Id");
        columnBinding.setColumnClass(Long.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nome}"));
        columnBinding.setColumnName("Nome");
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${cpf}"));
        columnBinding.setColumnName("Cpf");
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${endereco}"));
        columnBinding.setColumnName("Endereco");
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${cidade}"));
        columnBinding.setColumnName("Cidade");
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${estado}"));
        columnBinding.setColumnName("Estado");
        columnBinding.setColumnClass(String.class);
        bindingGroup.addBinding(jTableBinding);
        jTableBinding.bind();

        jTableClientes.getSelectionModel () .addListSelectionListener(new ListSelectionListener() { // Adiciona um evento de mudança de seleção ao jTabelClientes

            public void valueChanged(ListSelectionEvent e) { // Evento de mudança de seleção
                if (jTextFieldId.getText().isEmpty()) { // Não há cliente selecionado (Não há o que mostrar)
                    compraQuery = JavaApplicationCadastroClientePUEntityManager.createQuery("SELECT c FROM Compra c WHERE c.idCliente.id=0"); // Gerar uma query compra vazia
                } else {
                    compraQuery = JavaApplicationCadastroClientePUEntityManager.createQuery("SELECT c FROM Compra c WHERE c.idCliente.id=" + jTextFieldId.getText()); // Buscar compras de cliente Id
                }
                compraList.clear(); // Limpa compras atual
                compraList.addAll(compraQuery.getResultList()); // Adiciona ao list as compras buscadas
                if (jTableCompras.getRowCount() > 0) { // Existe compras
                    jTableCompras.setRowSelectionInterval(0, 0); // Seleciona a primeira no jTable
                } else {
                    // Limpa campos da guia compras se elas não existem
                    jTextFieldCompraDescricao.setText(null);
                    jTextFieldCompraId.setText(null);
                    jFormattedTextFieldCompraData.setText(null);
                    jFormattedTextFieldCompraPrcUnitario.setText(null);
                    jFormattedTextFieldCompraQtd.setText(null);
                }
            }
        }

    );
    jScrollPane1.setViewportView(jTableClientes);

    jTextFieldCPFBusca.setText("Buscar");
    jTextFieldCPFBusca.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jTextFieldCPFBuscaActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanelClienteLayout = new javax.swing.GroupLayout(jPanelCliente);
    jPanelCliente.setLayout(jPanelClienteLayout);
    jPanelClienteLayout.setHorizontalGroup(
        jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanelClienteLayout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabelId)
                .addComponent(jLabelNome)
                .addComponent(jLabelCpf)
                .addComponent(jLabelEndereco)
                .addComponent(jLabelCidade)
                .addComponent(jLabelEstado))
            .addGap(55, 55, 55)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                .addComponent(jTextFieldEstado, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
                .addComponent(jTextFieldCidade)
                .addComponent(jTextFieldEndereco)
                .addComponent(jTextFieldNome)
                .addComponent(jTextFieldId)
                .addComponent(jTextFieldCPF))
            .addGap(18, 18, 18)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                .addComponent(jButtonSalvarCliente, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButtonCancelarCliente, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButtonExcluirCliente, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButtonInserirCliente, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGap(33, 33, 33)
            .addComponent(jLabelCpfBusca)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jTextFieldCpfBusca)
                .addGroup(jPanelClienteLayout.createSequentialGroup()
                    .addComponent(jTextFieldCPFBusca)
                    .addGap(0, 0, Short.MAX_VALUE))))
        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE)
    );
    jPanelClienteLayout.setVerticalGroup(
        jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanelClienteLayout.createSequentialGroup()
            .addGap(26, 26, 26)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabelId)
                .addComponent(jTextFieldId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jButtonInserirCliente)
                .addComponent(jLabelCpfBusca)
                .addComponent(jTextFieldCpfBusca, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanelClienteLayout.createSequentialGroup()
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jButtonSalvarCliente))
                        .addComponent(jLabelNome)))
                .addGroup(jPanelClienteLayout.createSequentialGroup()
                    .addGap(20, 20, 20)
                    .addComponent(jTextFieldCPFBusca)))
            .addGap(18, 18, 18)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldCPF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonCancelarCliente))
                .addComponent(jLabelCpf))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabelEndereco)
                .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonExcluirCliente)))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabelCidade)
                .addComponent(jTextFieldCidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanelClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabelEstado)
                .addComponent(jTextFieldEstado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGap(30, 30, 30)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    jTabbedPaneCliente.addTab("Cliente", jPanelCliente);

    jLabelIDCompra.setText("Id");

    jLabelData.setText("Data");

    jLabelDescricao.setText("Descrição");

    jLabelQtd.setText("Qtd");

    jLabelValorUnitario.setText("Valor Unitário");

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableCompras, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.id}"), jTextFieldCompraId, org.jdesktop.beansbinding.BeanProperty.create("text"));
    bindingGroup.addBinding(binding);

    jFormattedTextFieldCompraData.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableCompras, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.data}"), jFormattedTextFieldCompraData, org.jdesktop.beansbinding.BeanProperty.create("value"));
    bindingGroup.addBinding(binding);

    jFormattedTextFieldCompraData.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jFormattedTextFieldCompraDataActionPerformed(evt);
        }
    });

    jFormattedTextFieldCompraQtd.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableCompras, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.qtde}"), jFormattedTextFieldCompraQtd, org.jdesktop.beansbinding.BeanProperty.create("value"));
    bindingGroup.addBinding(binding);

    jFormattedTextFieldCompraPrcUnitario.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableCompras, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.precoUnitario}"), jFormattedTextFieldCompraPrcUnitario, org.jdesktop.beansbinding.BeanProperty.create("value"));
    bindingGroup.addBinding(binding);

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, jTableCompras, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.descricao}"), jTextFieldCompraDescricao, org.jdesktop.beansbinding.BeanProperty.create("text"));
    bindingGroup.addBinding(binding);

    jTextFieldCompraDescricao.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            jTextFieldCompraDescricaoKeyPressed(evt);
        }
    });

    jButtonCompraInserir.setText("Inserir");
    jButtonCompraInserir.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonCompraInserirActionPerformed(evt);
        }
    });

    jButtonCompraSalvar.setText("Salvar");
    jButtonCompraSalvar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonCompraSalvarActionPerformed(evt);
        }
    });

    jButtonCompraCancelar.setText("Cancelar");
    jButtonCompraCancelar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonCompraCancelarActionPerformed(evt);
        }
    });

    jButtonCompraExcluir.setText("Excluir");
    jButtonCompraExcluir.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButtonCompraExcluirActionPerformed(evt);
        }
    });

    jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, compraList, jTableCompras);
    columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}"));
    columnBinding.setColumnName("Id");
    columnBinding.setColumnClass(Long.class);
    columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${data}"));
    columnBinding.setColumnName("Data");
    columnBinding.setColumnClass(java.util.Date.class);
    columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${descricao}"));
    columnBinding.setColumnName("Descricao");
    columnBinding.setColumnClass(String.class);
    columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${qtde}"));
    columnBinding.setColumnName("Qtde");
    columnBinding.setColumnClass(Integer.class);
    columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${precoUnitario}"));
    columnBinding.setColumnName("Preco Unitario");
    columnBinding.setColumnClass(Double.class);
    bindingGroup.addBinding(jTableBinding);
    jTableBinding.bind();

    jScrollPane2.setViewportView(jTableCompras);

    javax.swing.GroupLayout jPanelComprasLayout = new javax.swing.GroupLayout(jPanelCompras);
    jPanelCompras.setLayout(jPanelComprasLayout);
    jPanelComprasLayout.setHorizontalGroup(
        jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanelComprasLayout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 577, Short.MAX_VALUE)
                .addGroup(jPanelComprasLayout.createSequentialGroup()
                    .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jLabelIDCompra)
                        .addComponent(jLabelData)
                        .addComponent(jLabelQtd)
                        .addComponent(jLabelValorUnitario)
                        .addComponent(jLabelDescricao))
                    .addGap(36, 36, 36)
                    .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jFormattedTextFieldCompraPrcUnitario, javax.swing.GroupLayout.DEFAULT_SIZE, 263, Short.MAX_VALUE)
                        .addComponent(jFormattedTextFieldCompraQtd)
                        .addComponent(jFormattedTextFieldCompraData)
                        .addComponent(jTextFieldCompraId)
                        .addComponent(jTextFieldCompraDescricao))
                    .addGap(35, 35, 35)
                    .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jButtonCompraSalvar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButtonCompraCancelar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButtonCompraExcluir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButtonCompraInserir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGap(0, 0, Short.MAX_VALUE)))
            .addContainerGap())
    );
    jPanelComprasLayout.setVerticalGroup(
        jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanelComprasLayout.createSequentialGroup()
            .addGap(27, 27, 27)
            .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabelIDCompra)
                .addComponent(jTextFieldCompraId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jButtonCompraInserir))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
            .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabelData)
                .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jFormattedTextFieldCompraData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonCompraSalvar)))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanelComprasLayout.createSequentialGroup()
                    .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jLabelDescricao)
                        .addComponent(jTextFieldCompraDescricao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabelQtd)
                        .addComponent(jFormattedTextFieldCompraQtd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(jPanelComprasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabelValorUnitario)
                        .addComponent(jFormattedTextFieldCompraPrcUnitario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(jPanelComprasLayout.createSequentialGroup()
                    .addComponent(jButtonCompraCancelar)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jButtonCompraExcluir)))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(90, Short.MAX_VALUE))
    );

    jTabbedPaneCliente.addTab("Compras", jPanelCompras);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jTabbedPaneCliente)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jTabbedPaneCliente)
    );

    bindingGroup.bind();

    pack();
    }// </editor-fold>

    private void jFormattedTextFieldCompraDataActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }

    private void formWindowOpened(java.awt.event.WindowEvent evt) {
        // TODO add your handling code here:
        this.configurarClienteInicializacao();
    }

    private void jButtonInserirClienteActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:// Código para inserir o cliente
        this.inserirCliente();
    }
 /*
    private void jButtonSalvarClienteActionPerformed(java.awt.event.ActionEvent evt) {
        // Código para salvar o cliente
        try {
            if (this.estadoCliente == EstadoCliente.INSERINDO_CLIENTE) {
                this.salvarClienteEmInsercao();
            } else {
                this.salvarClienteEmAtualização();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(rootPane, e);
        }
            JOptionPane.showMessageDialog(null,"Cadastro Efetuado!!");*//*
    }
*/
    private void jButtonCancelarClienteActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
         // Código para cancelar alteração ou inserção de cliente
        try {
            if (this.estadoCliente == EstadoCliente.INSERINDO_CLIENTE) {
                this.cancelarInsercaoCliente();
            } else {
                this.cancelarAtualizacaoCliente();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(rootPane, e);
        }
    }

    private void jButtonExcluirClienteActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
             // Código para excluir o cliente
        if (JOptionPane.showConfirmDialog(rootPane, "Confirma a exclusão deste registro?") == JOptionPane.OK_OPTION) {
            try {
                this.excluirCliente();
            } catch (Exception e) {
                JOptionPane.showMessageDialog(rootPane, e);
            }
        }
    }

    private void jTextFieldCPFBuscaActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        // código para encontrar cliente
        this.encontrarCliente(this.jTextFieldCPFBusca.getText());
    }

    private void jTextFieldIdActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }

    private void jTextFieldNomeActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
             // Código que provoca edição de cliente em modificação no campo Nome
        this.configurarMudancaDeEstadoPorEdicaoCliente();
    }

    private void jButtonCompraExcluirActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
           // Código para exclusão de compra
        if (JOptionPane.showConfirmDialog(rootPane, "Confirma a exclusão deste registro?") == JOptionPane.OK_OPTION) {
            try {
                this.excluirCompra();
            } catch (Exception e) {
                JOptionPane.showMessageDialog(rootPane, e);
            }
        }
    }

    private void jTextFieldNomeKeyPressed(java.awt.event.KeyEvent evt) {
        // TODO add your handling code here:
        // Edição de cliente por alteração do campo Nome
        this.configurarMudancaDeEstadoPorEdicaoCliente();
    }

    private void jTextFieldCompraDescricaoKeyPressed(java.awt.event.KeyEvent evt) {
        // TODO add your handling code here:
         // Código para colocar em edição a compra por alteração do campo descrição
        this.configurarMudancaDeEstadoPorEdicaoCompra();
    }

    private void jButtonCompraCancelarActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
         // Código que cancela inserção ou edição de compra
        try {
            if (this.estadoCompra == EstadoCompra.INSERINDO_COMPRA) {
                this.cancelarInsercaoCompra();
            } else {
                this.cancelarAtualizacaoCompra();
            }

        } catch (Exception e) {
            JOptionPane.showMessageDialog(rootPane, e);
        }
    }

    private void jButtonCompraSalvarActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
         // Código para salvar compra
        try {

            if (this.estadoCompra == EstadoCompra.INSERINDO_COMPRA) {

                this.salvarCompraEmInsercao();
            } else {
                this.salvarCompraEmAtualizacao();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(rootPane, e);
        }
    }

    private void jButtonCompraInserirActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
         // Código para inserir compra
        this.inserirCompra();
    }

    private void jButtonSalvarClienteActionPerformed(java.awt.event.ActionEvent evt) {
        // Código para salvar o cliente
        try {
            if (this.estadoCliente == EstadoCliente.INSERINDO_CLIENTE) {
                this.salvarClienteEmInsercao();
            } else {
                this.salvarClienteEmAtualização();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(rootPane, e);
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(JFrameClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(JFrameClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(JFrameClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(JFrameClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JFrameClientes().setVisible(true);
            }
        });
    }

    private void jButtonInserirClienteActionPerformed(Object object) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    private enum EstadoCliente {

        INSERINDO_CLIENTE,
        EDITANDO_CLIENTE,
        CONSULTANDO_CLIENTE
    }

    private enum EstadoCompra {

        INSERINDO_COMPRA,
        EDITANDO_COMPRA,
        CONSULTANDO_COMPRA
    }
    private EstadoCliente estadoCliente = EstadoCliente.CONSULTANDO_CLIENTE;
    private EstadoCompra estadoCompra = EstadoCompra.CONSULTANDO_COMPRA;
    private Cliente cliente;

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    private void inserirCliente() {
        Cliente cliente = new Cliente();
        this.clienteList.add(cliente); // Insere no clienteList para forçar a aparição de uma linha em branco no JTableClientes

        // Seleciona objeto inserido na tabela e estabelece foco no campo "nome" (Apenas dar a sensação de inserção)
        this.jTableClientes.setRowSelectionInterval(this.jTableClientes.getRowCount() - 1, this.jTableClientes.getRowCount() - 1);
        this.jTextFieldNome.requestFocus();

        //Configura botões para estado de Inserção
        this.jButtonInserirCliente.setEnabled(false);
        this.jButtonExcluirCliente.setEnabled(false);
        this.jButtonCancelarCliente.setEnabled(true);
        this.jButtonSalvarCliente.setEnabled(true);

        this.estadoCliente = EstadoCliente.INSERINDO_CLIENTE;
    }

    private void salvarClienteEmAtualização() {
        // Encontra e carrega o objeto de atualização com base no "Id"
        if (cliente.encontradoId(Long.valueOf(this.jTextFieldId.getText()))) {

            // Atualiza o objeto com novos valores
            cliente.setNome(this.jTextFieldNome.getText());
            cliente.setCidade(this.jTextFieldCidade.getText());
            cliente.setCpf(this.jTextFieldCPF.getText());
            cliente.setEndereco(this.jTextFieldEndereco.getText());
            cliente.setEstado(this.jTextFieldEstado.getText());

            if (cliente.atualizado()) { // Se atualizado objeto no BD

                //Configura botões para estado de Consulta
                this.jButtonInserirCliente.setEnabled(true);
                this.jButtonExcluirCliente.setEnabled(this.jTableClientes.getRowCount() != 0); // Existe algo para excluir?
                this.jButtonCancelarCliente.setEnabled(false);
                this.jButtonSalvarCliente.setEnabled(false);

                this.estadoCliente = EstadoCliente.CONSULTANDO_CLIENTE;
            }
        }
    }

    private void encontrarCliente(String CPF) {
        // Encontra e carrega o objeto de atualização com base no "Id"
        if (CPF.isEmpty()) {

            // Busca todos
            clienteQuery = JavaApplicationCadastroClientePUEntityManager.createQuery("SELECT c FROM Cliente c");

        } else {

            clienteQuery = JavaApplicationCadastroClientePUEntityManager.createQuery("SELECT c FROM Cliente c WHERE c.cpf = " + CPF);
        }

        clienteList.clear();
        clienteList.addAll(clienteQuery.getResultList());
        if (jTableClientes.getRowCount() > 0) {
            jTableClientes.setRowSelectionInterval(0, 0);
        } else {
            jTextFieldNome.setText(null);
            jTextFieldId.setText(null);
            jTextFieldCPF.setText(null);
            jTextFieldEndereco.setText(null);
            jTextFieldCidade.setText(null);
            jTextFieldEstado.setText(null);
        }
    }

    private void salvarClienteEmInsercao() {
        // Cria o objeto
        Cliente cliente = new Cliente();

        // Configura o objeto com os valores definidos nos campos
        cliente.setNome(this.jTextFieldNome.getText());
        cliente.setCidade(this.jTextFieldCidade.getText());
        cliente.setCpf(this.jTextFieldCPF.getText());
        cliente.setEndereco(this.jTextFieldEndereco.getText());
        cliente.setEstado(this.jTextFieldEstado.getText());

        if (cliente.armazenado()) { // Se armazenado objeto no BD

            // Retira a linha em branco, selecionada na inserção, da lista e do JTableClientes
            this.clienteList.remove(this.jTableClientes.getSelectedRow());
            // Adiciona o novo "Cliente" gravado no BD, na lista e automaticamente no JTableClientes.
            this.clienteList.add(cliente);

            // Seleciona o último da lista
            this.jTableClientes.setRowSelectionInterval(this.jTableClientes.getRowCount() - 1, this.jTableClientes.getRowCount() - 1);

            //Configura botões para estado de Consulta
            this.jButtonInserirCliente.setEnabled(true);
            this.jButtonExcluirCliente.setEnabled(this.jTableClientes.getRowCount() != 0); // Existe algo para excluir?
            this.jButtonCancelarCliente.setEnabled(false);
            this.jButtonSalvarCliente.setEnabled(false);

            this.estadoCliente = EstadoCliente.CONSULTANDO_CLIENTE;
        }

    }

    private void cancelarInsercaoCliente() {

        // Remove a linha em branco da lista e automaticamente do JTable
        this.clienteList.remove(this.jTableClientes.getSelectedRow());
        if (this.jTableClientes.getRowCount() > 0) { // Se houver objetos na lista
            // Seleciona o último da lista
            this.jTableClientes.setRowSelectionInterval(this.jTableClientes.getRowCount() - 1, this.jTableClientes.getRowCount() - 1);
        }

        //Configura botões para estado de Consulta
        this.jButtonInserirCliente.setEnabled(true);
        this.jButtonExcluirCliente.setEnabled(this.jTableClientes.getRowCount() != 0); // Existe algo para excluir?
        this.jButtonCancelarCliente.setEnabled(false);
        this.jButtonSalvarCliente.setEnabled(false);

        this.estadoCliente = EstadoCliente.CONSULTANDO_CLIENTE;

    }

    private void cancelarAtualizacaoCliente() {
        // Busca o objeto com informações anteriores à atualização
        Cliente cliente = new Cliente();
        if (cliente.encontradoId(Long.valueOf(this.jTextFieldId.getText()))) {

            // Atualiza os campos com dados sem alteração
            this.jTextFieldNome.setText(cliente.getNome());
            this.jTextFieldCidade.setText(cliente.getCidade());
            this.jTextFieldCPF.setText(cliente.getCpf());
            this.jTextFieldEndereco.setText(cliente.getEndereco());
            this.jTextFieldEstado.setText(cliente.getEstado());
        }

        //Configura botões para estado de Consulta
        this.jButtonInserirCliente.setEnabled(true);
        this.jButtonExcluirCliente.setEnabled(this.jTableClientes.getRowCount() != 0); // Existe algo para excluir?
        this.jButtonCancelarCliente.setEnabled(false);
        this.jButtonSalvarCliente.setEnabled(false);

        this.estadoCliente = EstadoCliente.CONSULTANDO_CLIENTE;

    }

    private void excluirCliente() {
        Cliente cliente = new Cliente(); // Cria o objeto
        cliente.setId(Long.valueOf(this.jTextFieldId.getText())); // Configura o id de exclusão
        if (cliente.desarmazenado()) { // Exclui o objeto do BD
            int linhaSelecionada = this.jTableClientes.getSelectedRow(); // Marca linha selecionada da tabela
            this.clienteList.remove(this.jTableClientes.getSelectedRow()); // Remove objeto da lista e do JTabel
            if (this.jTableClientes.getRowCount() > 0) { // Se houver linhas na tabela
                if (linhaSelecionada > 0) {
                    linhaSelecionada--;
                }
                this.jTableClientes.setRowSelectionInterval(linhaSelecionada, linhaSelecionada); // Seleciona linha marcada
            }

            //Configura botões para estado de Consulta
            this.jButtonInserirCliente.setEnabled(true);
            this.jButtonExcluirCliente.setEnabled(this.jTableClientes.getRowCount() != 0); // Existe algo para excluir?
            this.jButtonCancelarCliente.setEnabled(false);
            this.jButtonSalvarCliente.setEnabled(false);

            this.estadoCliente = EstadoCliente.CONSULTANDO_CLIENTE;

        }
    }

    private void configurarMudancaDeEstadoPorEdicaoCliente() {

        //Configura botões para Estado de Edição
        this.jButtonInserirCliente.setEnabled(false);
        this.jButtonExcluirCliente.setEnabled(false);
        this.jButtonCancelarCliente.setEnabled(true);
        this.jButtonSalvarCliente.setEnabled(true);

        if (this.estadoCliente == EstadoCliente.CONSULTANDO_CLIENTE) {
            if (this.jTableClientes.getRowCount() != 0) { // Existe algo para editar?
                this.estadoCliente = EstadoCliente.EDITANDO_CLIENTE;
            } else {
                this.jButtonInserirClienteActionPerformed(null); // Executa uma inserção
            }
        }
    }

    private void configurarClienteInicializacao() {
        // Configuração da Guia Clientes
        if (this.jTableClientes.getRowCount() > 0) { // Se houver linhas na lista
            this.jTableClientes.setRowSelectionInterval(0, 0); // Seleciona linha 0 (primeira)
        }

        //Configura botões para estado de Consulta
        this.jButtonInserirCliente.setEnabled(true);
        this.jButtonExcluirCliente.setEnabled(this.jTableClientes.getRowCount() != 0); // Existe algo para excluir?
        this.jButtonCancelarCliente.setEnabled(false);
        this.jButtonSalvarCliente.setEnabled(false);


        // Configuração da Guia Compras
        if (this.jTableCompras.getRowCount() > 0) { // Se houver linhas na lista
            this.jTableCompras.setRowSelectionInterval(0, 0); // Seleciona linha 0 (primeira)
        }

        //Configura botões para o Estado de Consulta
        this.jButtonCompraInserir.setEnabled(true);
        this.jButtonCompraExcluir.setEnabled(this.jTableCompras.getRowCount() != 0); // Existe registro para excluir?
        this.jButtonCompraCancelar.setEnabled(false);
        this.jButtonCompraSalvar.setEnabled(false);
        this.estadoCompra = EstadoCompra.CONSULTANDO_COMPRA;

    }


    private void excluirCompra() {
        Compra compra = new Compra(); // Cria o objeto
        compra.setId(Long.valueOf(this.jTextFieldCompraId.getText())); // Configura o id de exclusão
        if (compra.desarmazenado()) { // Exclui o objeto do BD
            int linhaSelecionada = this.jTableCompras.getSelectedRow(); // Marca linha selecionada da tabela
            this.compraList.remove(this.jTableCompras.getSelectedRow()); // Remove objeto da lista
            if (this.jTableCompras.getRowCount() > 0) { // Se houver linhas na tabela
                if (linhaSelecionada > 0) {
                    linhaSelecionada--;
                }
                this.jTableCompras.setRowSelectionInterval(linhaSelecionada, linhaSelecionada); // Seleciona linha marcada
            }

            //Configura botões para o Estado de Consulta
            this.jButtonCompraInserir.setEnabled(true);
            this.jButtonCompraExcluir.setEnabled(this.jTableCompras.getRowCount() != 0); // Existe algo para excluir?
            this.jButtonCompraCancelar.setEnabled(false);
            this.jButtonCompraSalvar.setEnabled(false);

            this.estadoCompra = EstadoCompra.CONSULTANDO_COMPRA;

        }
    }

    private void configurarMudancaDeEstadoPorEdicaoCompra() {

        //Configura botões para Estado de Edição
        this.jButtonCompraInserir.setEnabled(false);
        this.jButtonCompraExcluir.setEnabled(false);
        this.jButtonCompraCancelar.setEnabled(true);
        this.jButtonCompraSalvar.setEnabled(true);

        if (this.estadoCompra == EstadoCompra.CONSULTANDO_COMPRA) {
            if (this.jTableCompras.getRowCount() != 0) { // Existe algo para editar?
                this.estadoCompra = EstadoCompra.EDITANDO_COMPRA;
            } else {
                this.jButtonInserirClienteActionPerformed(null); // Executa uma inserção
            }
        }
    }

    private void cancelarInsercaoCompra() {

        // Remove a linha em branco da lista e automaticamente do JTable
        this.compraList.remove(this.jTableCompras.getSelectedRow());
        if (this.jTableCompras.getRowCount() > 0) { // Se houver objetos na lista
            // Seleciona o último da lista
            this.jTableCompras.setRowSelectionInterval(this.jTableCompras.getRowCount() - 1, this.jTableCompras.getRowCount() - 1);
        }

    }

    private void cancelarAtualizacaoCompra() {
        // Busca o objeto com informações anteriores à atualização
        Compra compra = new Compra();
        if (compra.encontradoId(Long.valueOf(this.jTextFieldCompraId.getText()))) {

            // Atualiza os campos com dados sem alteração
            this.jTextFieldCompraDescricao.setText(compra.getDescricao());

            this.jFormattedTextFieldCompraData.setText(new SimpleDateFormat("dd/MM/yyyy").format(compra.getData()));
            DecimalFormat decimalFormat = new DecimalFormat("¤ #,##0.00");
            this.jFormattedTextFieldCompraPrcUnitario.setText(decimalFormat.format(compra.getPrecoUnitario()));
            this.jFormattedTextFieldCompraQtd.setText(String.valueOf(compra.getQtde()));
        }

        //Configura botões para o Estado de Consulta
        this.jButtonCompraInserir.setEnabled(true);
        this.jButtonCompraExcluir.setEnabled(this.jTableCompras.getRowCount() != 0); // Existe registro para excluir?
        this.jButtonCompraCancelar.setEnabled(false);
        this.jButtonCompraSalvar.setEnabled(false);
        this.estadoCompra = EstadoCompra.CONSULTANDO_COMPRA;
    }

    private void inserirCompra() {
        Compra compra = new Compra();
        this.compraList.add(compra); // Insere no compraList para forçar a aparição de uma linha em branco no JTableCompras

        // Seleciona objeto inserido na tabela e estabelece foco no campo "nome" (Apenas dar a sensação de inserção)
        this.jTableCompras.setRowSelectionInterval(this.jTableCompras.getRowCount() - 1, this.jTableCompras.getRowCount() - 1);
        this.jTextFieldCompraDescricao.requestFocus();

        //Configura botões para estado de Inserção
        this.jButtonCompraInserir.setEnabled(false);
        this.jButtonCompraExcluir.setEnabled(false);
        this.jButtonCompraCancelar.setEnabled(true);
        this.jButtonCompraSalvar.setEnabled(true);

        this.estadoCompra = EstadoCompra.INSERINDO_COMPRA;
    }

    private void salvarCompraEmInsercao() throws ParseException {
        // Cria e configura o objeto
        Compra compra = new Compra();

        // Configura o objeto com os valores definidos nos campos
        Cliente cliente = new Cliente();
        cliente.encontradoId(Long.valueOf(this.jTextFieldId.getText()));
        compra.setIdCliente(cliente);
        compra.setDescricao(this.jTextFieldCompraDescricao.getText());
        SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
        compra.setData((java.util.Date) data.parse(this.jFormattedTextFieldCompraData.getText()));
        DecimalFormat decimalFormat = new DecimalFormat("¤ #,##0.00");
        compra.setPrecoUnitario(decimalFormat.parse(this.jFormattedTextFieldCompraPrcUnitario.getText()).doubleValue());

        compra.setQtde(Integer.parseInt(this.jFormattedTextFieldCompraQtd.getText()));

        if (compra.armazenado()) { // Se armazenado objeto no BD

            // Retira o objeto da lista e o adiciona com o id
            this.compraList.remove(this.jTableCompras.getSelectedRow());
            this.compraList.add(compra);

            // Seleciona o último da lista
            this.jTableCompras.setRowSelectionInterval(this.jTableCompras.getRowCount() - 1, this.jTableCompras.getRowCount() - 1);

            // Configura botões em Estado de Consulta
            this.jButtonCompraInserir.setEnabled(true);
            this.jButtonCompraExcluir.setEnabled(this.jTableCompras.getRowCount() != 0); // Existe registro para excluir?
            this.jButtonCompraCancelar.setEnabled(false);
            this.jButtonCompraSalvar.setEnabled(false);

            this.estadoCompra = EstadoCompra.CONSULTANDO_COMPRA;
        }
    }

    private void salvarCompraEmAtualizacao() throws ParseException {

        // Cria e configura o objeto
        Compra compra = new Compra();

        // Encontra e carrega o objeto de atualização
        if (compra.encontradoId(Long.valueOf(this.jTextFieldCompraId.getText()))) {

            // Atualiza o objeto
            compra.setDescricao(this.jTextFieldCompraDescricao.getText());
            SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
            compra.setData((java.util.Date) data.parse(this.jFormattedTextFieldCompraData.getText()));
            DecimalFormat decimalFormat = new DecimalFormat("¤ #,##0.00");
            compra.setPrecoUnitario(decimalFormat.parse(this.jFormattedTextFieldCompraPrcUnitario.getText()).doubleValue());
            compra.setQtde(Integer.parseInt(this.jFormattedTextFieldCompraQtd.getText()));

            if (compra.atualizado()) { // Se atualizado objeto no BD

                // Configura botões em Estado de Consulta
                this.jButtonCompraInserir.setEnabled(true);
                this.jButtonCompraExcluir.setEnabled(this.jTableCompras.getRowCount() != 0); // Existe registro para excluir?
                this.jButtonCompraCancelar.setEnabled(false);
                this.jButtonCompraSalvar.setEnabled(false);

                this.estadoCompra = EstadoCompra.CONSULTANDO_COMPRA;
            }
        }
    }
    // Variables declaration - do not modify
    private javax.persistence.EntityManager JavaApplicationCadastroClientePUEntityManager;
    private java.util.List<controle.Cliente> clienteList;
    private javax.persistence.Query clienteQuery;
    private java.util.List<controle.Compra> compraList;
    private javax.persistence.Query compraQuery;
    private javax.swing.JButton jButtonCancelarCliente;
    private javax.swing.JButton jButtonCompraCancelar;
    private javax.swing.JButton jButtonCompraExcluir;
    private javax.swing.JButton jButtonCompraInserir;
    private javax.swing.JButton jButtonCompraSalvar;
    private javax.swing.JButton jButtonExcluirCliente;
    private javax.swing.JButton jButtonInserirCliente;
    private javax.swing.JButton jButtonSalvarCliente;
    private javax.swing.JFormattedTextField jFormattedTextFieldCompraData;
    private javax.swing.JFormattedTextField jFormattedTextFieldCompraPrcUnitario;
    private javax.swing.JFormattedTextField jFormattedTextFieldCompraQtd;
    private javax.swing.JLabel jLabelCidade;
    private javax.swing.JLabel jLabelCpf;
    private javax.swing.JLabel jLabelCpfBusca;
    private javax.swing.JLabel jLabelData;
    private javax.swing.JLabel jLabelDescricao;
    private javax.swing.JLabel jLabelEndereco;
    private javax.swing.JLabel jLabelEstado;
    private javax.swing.JLabel jLabelIDCompra;
    private javax.swing.JLabel jLabelId;
    private javax.swing.JLabel jLabelNome;
    private javax.swing.JLabel jLabelQtd;
    private javax.swing.JLabel jLabelValorUnitario;
    private javax.swing.JPanel jPanelCliente;
    private javax.swing.JPanel jPanelCompras;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTabbedPane jTabbedPaneCliente;
    private javax.swing.JTable jTableClientes;
    private javax.swing.JTable jTableCompras;
    private javax.swing.JTextField jTextFieldCPF;
    private javax.swing.JButton jTextFieldCPFBusca;
    private javax.swing.JTextField jTextFieldCidade;
    private javax.swing.JTextField jTextFieldCompraDescricao;
    private javax.swing.JTextField jTextFieldCompraId;
    private javax.swing.JTextField jTextFieldCpfBusca;
    private javax.swing.JTextField jTextFieldEndereco;
    private javax.swing.JTextField jTextFieldEstado;
    private javax.swing.JTextField jTextFieldId;
    private javax.swing.JTextField jTextFieldNome;
    private org.jdesktop.beansbinding.BindingGroup bindingGroup;
    // End of variables declaration
}

Scripts recomendados

Classe Java para conectar ao Mysql em um servidor remoto

Conexão com Banco de Dados MySQL

Integração Java + Firebird

Script para Conexão com Oracle

Conexão com Firebird usando a linguagem Java


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts