Date picker x Jtable

2 respostas
standart

Olá pessoal, sou iniciante na linguagem e nunca pensei que teria tanta dor de cabeça na criação de uma aplicação visual, atualmente estou me batendo para fazer funcionar uma formatação de um JFormattedTextField para ##/##/#### e aceitar somente numeros, até consegui fazer a formatação funcionar corretamente, mas este campo esta vinculado a uma Jtable e no momento que tiro o foco deste campo retorna uma exception “java.lang.ClassCastException”, de tanto apanhar com isso resolvi usar um Date picker, mas tive o mesmo problema, alguem poderia ajudar com alguma dica? So pra constar eu uso beansbinding para vincular o conteudo da Jtable com os campos.

Obrigado a todos.

2 Respostas

javer

Para te ajudar você precisa postar as partes do código onde dá o problema e a stacktrace da exception.
Dá para ver que é um problema de cast (conversão de tipos) mas sem ver código fica difícil ajudar.

standart

javer:
Para te ajudar você precisa postar as partes do código onde dá o problema e a stacktrace da exception.
Dá para ver que é um problema de cast (conversão de tipos) mas sem ver código fica difícil ajudar.

Ta ai o codigo e a stracktrace.

package br.com.gpinfo.compras.view.gui;
import br.com.gpinfo.util.JTextFieldLimit;
import br.com.gpinfo.util.FormatMaskDate;
import br.com.gpinfo.util.JTextFieldFilter;
import br.com.gpinfo.util.ValidaCampos;
import java.awt.EventQueue;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.beans.Beans;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.RollbackException;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.text.DateFormatter;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.MaskFormatter;

/**
 *
 * @author Isaac Sampaio
 */
public class ProdutoView extends JPanel {

    public ProdutoView() {
        maskData();
        initComponents();

        if (!Beans.isDesignTime()) {
            entityManager.getTransaction().begin();
        }
    }

    public MaskFormatter mascaraData = null;

    public void maskData() {
        try {
            mascaraData = new MaskFormatter("##/##/####");
            mascaraData.setValidCharacters("[telefone removido]");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

//Teste de formatação

    /*
    DateFormat displayFormat = new SimpleDateFormat("dd/MM/yyyy");
    DateFormatter displayFormatter = new DateFormatter(displayFormat);
    DateFormat editFormat = new SimpleDateFormat("dd/MM/yyyy");
    DateFormatter editFormatter = new DateFormatter(editFormat);
    DateFormat nullFormat = new SimpleDateFormat("'null'");
    DateFormatter nullFormatter = new DateFormatter(nullFormat);
    DefaultFormatterFactory factory = new DefaultFormatterFactory(displayFormatter,
        displayFormatter, editFormatter, nullFormatter);
     * /
    /** 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">//GEN-BEGIN:initComponents
    private void initComponents() {
        bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

        entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("gpinfoPU").createEntityManager();
        query = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT p FROM Produto p");
        list = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : org.jdesktop.observablecollections.ObservableCollections.observableList(query.getResultList());
        unidadeMedidaQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT u FROM UnidadeMedida u");
        unidadeMedidaList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : unidadeMedidaQuery.getResultList();
        unidadeMedidaListCellRenderer1 = new br.com.gpinfo.compras.renderer.UnidadeMedidaListCellRenderer();
        tipoProdutoListCellRenderer1 = new br.com.gpinfo.compras.renderer.TipoProdutoListCellRenderer();
        tipoQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT t FROM Tipo t");
        tipoList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : tipoQuery.getResultList();
        masterScrollPane = new javax.swing.JScrollPane();
        masterTable = new javax.swing.JTable();
        nomeProdutoLabel = new javax.swing.JLabel();
        descricaoProdutoLabel = new javax.swing.JLabel();
        tipoProdutoLabel = new javax.swing.JLabel();
        fabricacaoProdutoLabel = new javax.swing.JLabel();
        loteProdutoLabel = new javax.swing.JLabel();
        unidadeProdutoLabel = new javax.swing.JLabel();
        minimoProdutoLabel = new javax.swing.JLabel();
        nomeProdutoField = new javax.swing.JTextField();
        descricaoProdutoField = new javax.swing.JTextField();
        loteProdutoField = new javax.swing.JTextField();
        minimoProdutoField = new javax.swing.JTextField();
        jComboBox1 = new javax.swing.JComboBox();
        jPanel1 = new javax.swing.JPanel();
        saveButton = new javax.swing.JButton();
        refreshButton = new javax.swing.JButton();
        newButton = new javax.swing.JButton();
        deleteButton = new javax.swing.JButton();
        jComboBox2 = new javax.swing.JComboBox();
        fabricacaoProdutoField = new javax.swing.JFormattedTextField(mascaraData);

        FormListener formListener = new FormListener();

        unidadeMedidaListCellRenderer1.setText("unidadeMedidaListCellRenderer1");

        org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list, masterTable);
        org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nomeProduto}"));
        columnBinding.setColumnName("Nome");
        columnBinding.setColumnClass(String.class);
        columnBinding.setEditable(false);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${descricaoProduto}"));
        columnBinding.setColumnName("Descrição");
        columnBinding.setColumnClass(String.class);
        columnBinding.setEditable(false);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${tipoProduto.nomeTipo}"));
        columnBinding.setColumnName("Tipo");
        columnBinding.setColumnClass(String.class);
        columnBinding.setEditable(false);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${unidadeProduto.nomeUnidadeMedida}"));
        columnBinding.setColumnName("Unidade");
        columnBinding.setColumnClass(String.class);
        columnBinding.setEditable(false);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${fabricacaoProduto}"));
        columnBinding.setColumnName("Data de Fabricação");
        columnBinding.setColumnClass(java.util.Date.class);
        columnBinding.setEditable(false);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${validadeProduto}"));
        columnBinding.setColumnName("Data Vencimento");
        columnBinding.setColumnClass(java.util.Date.class);
        columnBinding.setEditable(false);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${loteProduto}"));
        columnBinding.setColumnName("Lote");
        columnBinding.setColumnClass(String.class);
        columnBinding.setEditable(false);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${minimoProduto}"));
        columnBinding.setColumnName("Estoque Mínimo");
        columnBinding.setColumnClass(Integer.class);
        columnBinding.setEditable(false);
        bindingGroup.addBinding(jTableBinding);
        jTableBinding.bind();
        masterScrollPane.setViewportView(masterTable);

        nomeProdutoLabel.setText("Nome:");

        descricaoProdutoLabel.setText("Descrição:");

        tipoProdutoLabel.setText("Tipo:");

        fabricacaoProdutoLabel.setText("Data Fabricação:");

        loteProdutoLabel.setText("Lote:");

        unidadeProdutoLabel.setText("Unidade Medida:");

        minimoProdutoLabel.setText("Estoque Mínimo:");

        org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.nomeProduto}"), nomeProdutoField, org.jdesktop.beansbinding.BeanProperty.create("text"));
        binding.setSourceUnreadableValue(null);
        bindingGroup.addBinding(binding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), nomeProdutoField, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.descricaoProduto}"), descricaoProdutoField, org.jdesktop.beansbinding.BeanProperty.create("text"));
        binding.setSourceUnreadableValue(null);
        bindingGroup.addBinding(binding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), descricaoProdutoField, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        descricaoProdutoField.addActionListener(formListener);
        descricaoProdutoField.addKeyListener(formListener);

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.loteProduto}"), loteProdutoField, org.jdesktop.beansbinding.BeanProperty.create("text"));
        binding.setSourceUnreadableValue(null);
        bindingGroup.addBinding(binding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), loteProdutoField, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.minimoProduto}"), minimoProdutoField, org.jdesktop.beansbinding.BeanProperty.create("text"));
        binding.setSourceUnreadableValue(null);
        bindingGroup.addBinding(binding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), minimoProdutoField, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        jComboBox1.setRenderer(unidadeMedidaListCellRenderer1);

        org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, unidadeMedidaList, jComboBox1);
        bindingGroup.addBinding(jComboBoxBinding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.unidadeProduto}"), jComboBox1, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
        bindingGroup.addBinding(binding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), jComboBox1, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        saveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gpinfo/compras/view/gui/img/save.png"))); // NOI18N
        saveButton.setLabel("Salvar");
        saveButton.addActionListener(formListener);

        refreshButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gpinfo/compras/view/gui/img/sair2.png"))); // NOI18N
        refreshButton.setLabel("Cancelar Alterações");
        refreshButton.addActionListener(formListener);

        newButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gpinfo/compras/view/gui/img/add.png"))); // NOI18N
        newButton.setLabel("Novo Produto");
        newButton.addActionListener(formListener);
        newButton.addKeyListener(formListener);

        deleteButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gpinfo/compras/view/gui/img/delete.png"))); // NOI18N
        deleteButton.setLabel("Excluir");

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), deleteButton, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        deleteButton.addActionListener(formListener);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(141, Short.MAX_VALUE)
                .addComponent(newButton, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(deleteButton, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(refreshButton)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(saveButton)
                    .addComponent(refreshButton)
                    .addComponent(deleteButton)
                    .addComponent(newButton))
                .addContainerGap())
        );

        jComboBox2.setRenderer(tipoProdutoListCellRenderer1);

        jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, tipoList, jComboBox2);
        bindingGroup.addBinding(jComboBoxBinding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.tipoProduto}"), jComboBox2, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
        bindingGroup.addBinding(binding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), jComboBox2, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement.fabricacaoProduto}"), fabricacaoProdutoField, org.jdesktop.beansbinding.BeanProperty.create("value"));
        bindingGroup.addBinding(binding);
        binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, masterTable, org.jdesktop.beansbinding.ELProperty.create("${selectedElement != null}"), fabricacaoProdutoField, org.jdesktop.beansbinding.BeanProperty.create("enabled"));
        bindingGroup.addBinding(binding);

        fabricacaoProdutoField.addActionListener(formListener);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(masterScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 729, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(nomeProdutoLabel)
                            .addComponent(descricaoProdutoLabel)
                            .addComponent(tipoProdutoLabel)
                            .addComponent(loteProdutoLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(loteProdutoField)
                                    .addComponent(jComboBox2, 0, 135, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(fabricacaoProdutoLabel)
                                    .addComponent(unidadeProdutoLabel))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(fabricacaoProdutoField)
                                    .addComponent(jComboBox1, 0, 133, Short.MAX_VALUE))
                                .addGap(36, 36, 36)
                                .addComponent(minimoProdutoLabel)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(minimoProdutoField, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(61, 61, 61))
                            .addComponent(nomeProdutoField, javax.swing.GroupLayout.DEFAULT_SIZE, 669, Short.MAX_VALUE)
                            .addComponent(descricaoProdutoField, javax.swing.GroupLayout.DEFAULT_SIZE, 669, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(masterScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 117, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(nomeProdutoLabel)
                    .addComponent(nomeProdutoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(descricaoProdutoLabel)
                    .addComponent(descricaoProdutoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(tipoProdutoLabel)
                            .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(loteProdutoLabel)
                            .addComponent(loteProdutoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(minimoProdutoLabel)
                            .addComponent(minimoProdutoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(unidadeProdutoLabel)))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(fabricacaoProdutoLabel)
                            .addComponent(fabricacaoProdutoField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(32, 32, 32)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        bindingGroup.bind();
    }

    // Code for dispatching events from components to event handlers.

    private class FormListener implements java.awt.event.ActionListener, java.awt.event.KeyListener {
        FormListener() {}
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            if (evt.getSource() == descricaoProdutoField) {
                ProdutoView.this.descricaoProdutoFieldActionPerformed(evt);
            }
            else if (evt.getSource() == saveButton) {
                ProdutoView.this.saveButtonActionPerformed(evt);
            }
            else if (evt.getSource() == refreshButton) {
                ProdutoView.this.refreshButtonActionPerformed(evt);
            }
            else if (evt.getSource() == newButton) {
                ProdutoView.this.newButtonActionPerformed(evt);
            }
            else if (evt.getSource() == deleteButton) {
                ProdutoView.this.deleteButtonActionPerformed(evt);
            }
            else if (evt.getSource() == fabricacaoProdutoField) {
                ProdutoView.this.fabricacaoProdutoFieldActionPerformed(evt);
            }
        }

        public void keyPressed(java.awt.event.KeyEvent evt) {
            if (evt.getSource() == newButton) {
                ProdutoView.this.newButtonKeyPressed(evt);
            }
        }

        public void keyReleased(java.awt.event.KeyEvent evt) {
            if (evt.getSource() == descricaoProdutoField) {
                ProdutoView.this.descricaoProdutoFieldKeyReleased(evt);
            }
        }

        public void keyTyped(java.awt.event.KeyEvent evt) {
        }
    }// </editor-fold>//GEN-END:initComponents

    @SuppressWarnings("unchecked")
    private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshButtonActionPerformed
        entityManager.getTransaction().rollback();
        entityManager.getTransaction().begin();
        java.util.Collection data = query.getResultList();
        for (Object entity : data) {
            entityManager.refresh(entity);
        }
        list.clear();
        list.addAll(data);
    }//GEN-LAST:event_refreshButtonActionPerformed

    private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteButtonActionPerformed
        int[] selected = masterTable.getSelectedRows();
        List<br.com.gpinfo.compras.business.Produto> toRemove = new ArrayList<br.com.gpinfo.compras.business.Produto>(selected.length);
        for (int idx = 0; idx < selected.length; idx++) {
            br.com.gpinfo.compras.business.Produto p = list.get(masterTable.convertRowIndexToModel(selected[idx]));
            toRemove.add(p);
            entityManager.remove(p);
        }
        list.removeAll(toRemove);
    }//GEN-LAST:event_deleteButtonActionPerformed

    private void newButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_newButtonActionPerformed
        br.com.gpinfo.compras.business.Produto p = new br.com.gpinfo.compras.business.Produto();
        entityManager.persist(p);
        list.add(p);
        int row = list.size() - 1;
        masterTable.setRowSelectionInterval(row, row);
        masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true));
    //  try {
    //     FormatMaskDate.maskData(fabricacaoProdutoField);
    // } catch (ParseException ex) {
    //    ex.printStackTrace();
    //}
    }//GEN-LAST:event_newButtonActionPerformed

    private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
        boolean a = ValidaCampos.campoVazio(fabricacaoProdutoField, "Dada de Fabricação");
        if (a) {
            fabricacaoProdutoField.grabFocus();
        } else {
            try {
                entityManager.getTransaction().commit();
                entityManager.getTransaction().begin();
            } catch (RollbackException rex) {
                rex.printStackTrace();
                entityManager.getTransaction().begin();
                List<br.com.gpinfo.compras.business.Produto> merged = new ArrayList<br.com.gpinfo.compras.business.Produto>(list.size());
                for (br.com.gpinfo.compras.business.Produto p : list) {
                    merged.add(entityManager.merge(p));
                }
                list.clear();
                list.addAll(merged);
            }
    }//GEN-LAST:event_saveButtonActionPerformed
    }
    private void newButtonKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_newButtonKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
            // newButton.doClick();
            nomeProdutoField.requestFocus();
        }
    }//GEN-LAST:event_newButtonKeyPressed

    private void descricaoProdutoFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_descricaoProdutoFieldActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_descricaoProdutoFieldActionPerformed

    private void descricaoProdutoFieldKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_descricaoProdutoFieldKeyReleased
       descricaoProdutoField.setText(descricaoProdutoField.getText().toUpperCase());
    }//GEN-LAST:event_descricaoProdutoFieldKeyReleased

    private void fabricacaoProdutoFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fabricacaoProdutoFieldActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_fabricacaoProdutoFieldActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton deleteButton;
    private javax.swing.JTextField descricaoProdutoField;
    private javax.swing.JLabel descricaoProdutoLabel;
    private javax.persistence.EntityManager entityManager;
    private javax.swing.JFormattedTextField fabricacaoProdutoField;
    private javax.swing.JLabel fabricacaoProdutoLabel;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBox2;
    private javax.swing.JPanel jPanel1;
    private java.util.List<br.com.gpinfo.compras.business.Produto> list;
    private javax.swing.JTextField loteProdutoField;
    private javax.swing.JLabel loteProdutoLabel;
    private javax.swing.JScrollPane masterScrollPane;
    private javax.swing.JTable masterTable;
    private javax.swing.JTextField minimoProdutoField;
    private javax.swing.JLabel minimoProdutoLabel;
    private javax.swing.JButton newButton;
    private javax.swing.JTextField nomeProdutoField;
    private javax.swing.JLabel nomeProdutoLabel;
    private javax.persistence.Query query;
    private javax.swing.JButton refreshButton;
    private javax.swing.JButton saveButton;
    private java.util.List<br.com.gpinfo.compras.business.Tipo> tipoList;
    private javax.swing.JLabel tipoProdutoLabel;
    private br.com.gpinfo.compras.renderer.TipoProdutoListCellRenderer tipoProdutoListCellRenderer1;
    private javax.persistence.Query tipoQuery;
    private java.util.List<br.com.gpinfo.compras.business.UnidadeMedida> unidadeMedidaList;
    private br.com.gpinfo.compras.renderer.UnidadeMedidaListCellRenderer unidadeMedidaListCellRenderer1;
    private javax.persistence.Query unidadeMedidaQuery;
    private javax.swing.JLabel unidadeProdutoLabel;
    private org.jdesktop.beansbinding.BindingGroup bindingGroup;
    // End of variables declaration//GEN-END:variables

    /*
    yourTextFeild.addKeyListener(
    new KeyListener(){
    public void keyPressed(KeyEvent e){
    if (e.getKey() == KeyEvent.VK_ENTER)
    yourButton.doClick();
    }
    }
    );
     */
    public static void main(final String[] args) {
        EventQueue.invokeLater(new Runnable() {

            public void run() {
                JFrame frame = new JFrame();
                frame.setContentPane(new ProdutoView());
                frame.pack();
                frame.setResizable(false);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
                frame.setTitle(args[0]);
            }
        });
    }
}
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException
        at java.lang.Class.cast(Class.java:2990)
        at org.jdesktop.beansbinding.Binding.convertReverse(Binding.java:1321)
        at org.jdesktop.beansbinding.Binding.getTargetValueForSource(Binding.java:909)
        at org.jdesktop.beansbinding.Binding.saveUnmanaged(Binding.java:1268)
        at org.jdesktop.beansbinding.Binding.save(Binding.java:1254)
        at org.jdesktop.beansbinding.AutoBinding.trySaveThenRefresh(AutoBinding.java:176)
        at org.jdesktop.beansbinding.AutoBinding.targetChangedImpl(AutoBinding.java:249)
        at org.jdesktop.beansbinding.Binding.targetChanged(Binding.java:1433)
        at org.jdesktop.beansbinding.Binding.access$1300(Binding.java:38)
        at org.jdesktop.beansbinding.Binding$PSL.propertyStateChanged(Binding.java:1620)
        at org.jdesktop.beansbinding.PropertyHelper.firePropertyStateChange(PropertyHelper.java:212)
        at org.jdesktop.beansbinding.BeanProperty.notifyListeners(BeanProperty.java:712)
        at org.jdesktop.beansbinding.BeanProperty.access$1000(BeanProperty.java:143)
        at org.jdesktop.beansbinding.BeanProperty$SourceEntry.cachedValueChanged(BeanProperty.java:369)
        at org.jdesktop.beansbinding.BeanProperty$SourceEntry.propertyValueChanged(BeanProperty.java:409)
        at org.jdesktop.beansbinding.BeanProperty$SourceEntry.propertyChange(BeanProperty.java:414)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
        at java.awt.Component.firePropertyChange(Component.java:7961)
        at javax.swing.JFormattedTextField.setValue(JFormattedTextField.java:782)
        at javax.swing.JFormattedTextField.commitEdit(JFormattedTextField.java:513)
        at javax.swing.JFormattedTextField$FocusLostHandler.run(JFormattedTextField.java:632)
        at javax.swing.JFormattedTextField.processFocusEvent(JFormattedTextField.java:614)
        at java.awt.Component.processEvent(Component.java:5890)
        at java.awt.Container.processEvent(Container.java:2023)
        at java.awt.Component.dispatchEventImpl(Component.java:4501)
        at java.awt.Container.dispatchEventImpl(Container.java:2081)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
        at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:889)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:562)
        at java.awt.Component.dispatchEventImpl(Component.java:4373)
        at java.awt.Container.dispatchEventImpl(Container.java:2081)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 19 segundos)
Criado 18 de janeiro de 2009
Ultima resposta 19 de jan. de 2009
Respostas 2
Participantes 2