Erro ao inserir dados em tabela

5 respostas
caioamante

Amigos.. estou com um problema.... fiz uma implementação de uma telinha que busca dados em uma tabelaa

com o botão pesquisar.... trago as informações em um jtable e quando selecionado aparece nos campos :
empresa,código,nome,cnh esse campos são referentes a tabela frt_motorista.
Porem criei uma nova tabela auxiliar (pois a outra é do sistema de gestão da empresa eu nao posso ficar alterando estruturas)nessa auxiliar criei os campos:
id,cod_empresa,cod_motorista,dat_atualizacao,pontuacao

Estes para suprir as necessidades de um usuário da empresa..

No anexo pode verificar-se os campos preenchidos são os que foram selecionado na lista a baixo... a ideia é de preencher os campos em branco... e no momento em que for salvar ele verifique se na tabela auxiliar que criei ja existe o registro através desse id que crie.. se existir ele faz update se não ele insere...
O id é do tipo autoimcremente e nem será editavél pelo usuário....

está tudo aparentemente sem erros.. consigo consultar e tudo mas... porem quando vou fazer o insert pelo salvar... ele da o seguinte problema

Conectando
Conectando
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at caio.forms.Principal.salvar(Principal.java:403)
        at caio.forms.Principal.jBSalvarActionPerformed(Principal.java:357)
        at caio.forms.Principal.access$200(Principal.java:35)
        at caio.forms.Principal$3.actionPerformed(Principal.java:130)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        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)

Vou inserir aqui minhas classes também .. para ver se alguem pode me ajudar.. pois tenho impressão que estou fazendo alguma bobeira das mais inbecís...sou iniciante e peço desculpas....

Esse é o meu método para salvar... se precisar coloco toda classe princial e a Dao tb..

public void salvar() throws SQLException {
        Controle c1 = new Controle();
        ControleDao dao = new ControleDao();

        if (jTId.getText().equals("")) {
            try {

                c1.setEmpresa(jTEmpresa.getText().toUpperCase());
                c1.setMotorista(jTMotorista.getText().toUpperCase());
                try {
                    c1.setData(formataData(jTData.getText()));
                } catch (Exception ex) {
                    Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
                }

                c1.setPontuacao(Integer.getInteger(jTPontuacao.getText()));

                dao.adiciona(c1); // TODO add your handling code here:
                JOptionPane.showMessageDialog(null, "Contato cadastrado com sucesso!!!");


            } catch (SQLException ex) {
                Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
                JOptionPane.showMessageDialog(null, "Ocorreu algum erro verifique!!!");

            }
            //insert
        } else {
            {

                c1.setEmpresa(jTEmpresa.getText().toUpperCase());
                c1.setMotorista(jTMotorista.getText().toUpperCase());
                try {
                    c1.setData(formataData(jTData.getText()));
                } catch (Exception ex) {
                    Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
                }
                c1.setPontuacao(Integer.getInteger(jTPontuacao.getText()));
                
                dao.altera(c1);
                JOptionPane.showMessageDialog(null, "Contato alterado com sucesso!!!");

            }
            //update
        }
    }

5 Respostas

natureza

Então isto dai é NullPointer.

Coloca um break point e debuga pra ver onde ele está buscando algo ou inserindo algo nulo.

Pois se tiver um ex: getPessoa().getNome(); e pessoa estiver nulo. Dará este erro !

Pode ser nesta linha: Principal.java:403

Veja ai.

Marky.Vasconcelos

Curiosidade qual TableModel voce esta usando?

caioamante

Estou utilizando default table …

segue minhas classes

Classe Controle

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package caio.logica;

import java.sql.Date;

/**
 *
 * @author Administrador
 */
public class Controle {

    private long id;
    private String empresa;
    private String motorista;
    private String nomMotorista;
    private Date data;
    private int pontuacao;
    private String cnh;

    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the empresa
     */
    public String getEmpresa() {
        return empresa;
    }

    /**
     * @param empresa the empresa to set
     */
    public void setEmpresa(String empresa) {
        this.empresa = empresa;
    }

    /**
     * @return the motorista
     */
    public String getMotorista() {
        return motorista;
    }

    /**
     * @param motorista the motorista to set
     */
    public void setMotorista(String motorista) {
        this.motorista = motorista;
    }

    /**
     * @return the nomMotorista
     */
    public String getNomMotorista() {
        return nomMotorista;
    }

    /**
     * @param nomMotorista the nomMotorista to set
     */
    public void setNomMotorista(String nomMotorista) {
        this.nomMotorista = nomMotorista;
    }

    /**
     * @return the data
     */
    public Date getData() {
        return data;
    }

    /**
     * @param data the data to set
     */
    public void setData(Date data) {
        this.data = data;
    }

    /**
     * @return the pontuacao
     */
    public int getPontuacao() {
        return pontuacao;
    }

    /**
     * @param pontuacao the pontuacao to set
     */
    public void setPontuacao(int pontuacao) {
        this.pontuacao = pontuacao;
    }

    /**
     * @return the cnh
     */
    public String getCnh() {
        return cnh;
    }

    /**
     * @param cnh the cnh to set
     */
    public void setCnh(String cnh) {
        this.cnh = cnh;
    }

}

Classe ControleDao

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package caio.dao;

import caio.bd.CriaConexao;
import caio.logica.Controle;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Administrador
 */
public class ControleDao {

    public Connection conexao;

    public ControleDao() throws SQLException {
        this.conexao = CriaConexao.getConexao();

    }

    public List<Controle> listaContatos(String nome) throws SQLException {
        List<Controle> controles = new ArrayList();
        String sql = "SELECT empresa,motorista,nom_motorista,dat_atualizacao,pontuacao,cnh FROM frt_motorista b LEFT OUTER JOIN controle_cnh a ON a.cod_empresa = b.empresa AND a.cod_motorista = b.motorista WHERE  b.nom_motorista like ? ";

        PreparedStatement stmt = this.conexao.prepareStatement(sql);

        stmt.setString(1, nome);
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {
            Controle c1 = new Controle();
            
            c1.setEmpresa(rs.getString("empresa"));
            c1.setMotorista(rs.getString("motorista"));
            c1.setNomMotorista(rs.getString("nom_motorista"));
            c1.setData(rs.getDate("dat_atualizacao"));
            c1.setPontuacao(rs.getInt("pontuacao"));
            c1.setCnh(rs.getString("cnh"));
            controles.add(c1);
        }
        rs.close();
        stmt.close();
        return controles;
    }

    public void adiciona(Controle c1) throws SQLException {
        String sql = "insert into controle_cnh (cod_empresa,cod_motorista,dat_atualizacao,pontuacao)values (?,?,?,?)";
        PreparedStatement stmt = conexao.prepareStatement(sql);

        stmt.setString(1, c1.getEmpresa());
        stmt.setString(2, c1.getMotorista());
        stmt.setDate(3, c1.getData());
        stmt.setInt(4, c1.getPontuacao());

        stmt.execute();
        stmt.close();
    }

    public void altera(Controle c1) throws SQLException {

        String sql = "update controle_cnh set cod_empresa=?,cod_motorista=?,dat_atualizacao=?,pontuacao=? where id =?";
        PreparedStatement stmt = conexao.prepareStatement(sql);

        stmt.setString(1, c1.getEmpresa());
        stmt.setString(2, c1.getMotorista());
        stmt.setDate(3, c1.getData());
        stmt.setInt(4, c1.getPontuacao());
        stmt.setLong(5, c1.getId());

        stmt.execute();
        stmt.close();
    }
}

Classe Principal

package caio.forms;

import caio.dao.ControleDao;
import caio.logica.Controle;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.MaskFormatter;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Principal.java
 *
 * Created on 26/01/2010, 19:02:32
 */
/**
 *
 * @author caio
 */
public class Principal extends javax.swing.JFrame {

    DefaultTableModel tmControle = new DefaultTableModel(null, new String[]{"empresa", "codigo", "nome", "cnh"});
    List<Controle> controles;
    ListSelectionModel lsmControle;
    List<Controle> c1;

    public static DefaultFormatterFactory setFormatoData() {
        MaskFormatter comFoco = null;
        try {
            comFoco = new MaskFormatter("##/##/####");
        } catch (Exception pe) {
        }
        DefaultFormatterFactory factory = new DefaultFormatterFactory(comFoco, comFoco);
        return factory;
    }

    public static java.sql.Date formataData(String data) throws Exception {
        if (data == null || data.equals("")) {
            return null;
        }

        java.sql.Date date = null;
        try {
            DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
            date = new java.sql.Date(((java.util.Date) formatter.parse(data)).getTime());
        } catch (ParseException e) {
            throw e;
        }
        return date;
    }

    /** Creates new form Principal */
    public Principal() {
        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() {

        jPanel1 = new javax.swing.JPanel();
        jLEmpresa = new javax.swing.JLabel();
        jLCodigoMotorista = new javax.swing.JLabel();
        jLNomeMotorista = new javax.swing.JLabel();
        jLPontuacao = new javax.swing.JLabel();
        jTEmpresa = new javax.swing.JTextField();
        jTMotorista = new javax.swing.JTextField();
        jTNomMotorista = new javax.swing.JTextField();
        jBSalvar = new javax.swing.JButton();
        jBSair = new javax.swing.JButton();
        jTData = new javax.swing.JFormattedTextField();
        jLDataAtualizacao = new javax.swing.JLabel();
        jTCnh = new javax.swing.JTextField();
        jLCnh = new javax.swing.JLabel();
        jTPontuacao = new javax.swing.JTextField();
        jTId = new javax.swing.JTextField();
        jLId = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTControle = new javax.swing.JTable();
        jBPesquisa = new javax.swing.JButton();
        jTPesquisa = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Cadastro de Contatos"));

        jLEmpresa.setText("EMPRESA:");

        jLCodigoMotorista.setText("CÓDIGO");

        jLNomeMotorista.setText("NOME:");

        jLPontuacao.setText("PONTUAÇÃO:");

        jTMotorista.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTMotoristaKeyReleased(evt);
            }
        });

        jTNomMotorista.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTNomMotoristaKeyReleased(evt);
            }
        });

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

        jBSair.setText("Sair");
        jBSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBSairActionPerformed(evt);
            }
        });

        jTData.setFormatterFactory(setFormatoData());

        jLDataAtualizacao.setText("ATUALIZAÇÃO:");

        jLCnh.setText("CNH:");

        jTPontuacao.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTPontuacaoKeyReleased(evt);
            }
        });

        jLId.setText("ID:");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLEmpresa)
                    .addComponent(jLCodigoMotorista)
                    .addComponent(jLNomeMotorista)
                    .addComponent(jLDataAtualizacao)
                    .addComponent(jLId))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(11, 11, 11)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTData, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jTEmpresa, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jTNomMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, 257, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(37, 37, 37)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLPontuacao)
                                    .addComponent(jLCnh))
                                .addGap(27, 27, 27)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jTPontuacao, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jTCnh, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(51, 51, 51)))
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jBSalvar)
                        .addGap(18, 18, 18)
                        .addComponent(jBSair, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(251, 251, 251))))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLId))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLEmpresa)
                            .addComponent(jTEmpresa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLCodigoMotorista)
                            .addComponent(jTMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLCnh)
                            .addComponent(jTCnh, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(27, 27, 27)))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLNomeMotorista)
                    .addComponent(jTNomMotorista, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLPontuacao)
                    .addComponent(jTPontuacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLDataAtualizacao))
                .addGap(29, 29, 29)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jBSair, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jBSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jTControle.setModel(tmControle);
        jTControle.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        lsmControle = jTControle.getSelectionModel();
        lsmControle.addListSelectionListener(new ListSelectionListener(){
            public void valueChanged(ListSelectionEvent e){
                if (! e.getValueIsAdjusting()){
                    jTControleLinhaSelecionada(jTControle);
                }
            }
        }
    );
    jScrollPane1.setViewportView(jTControle);

    jBPesquisa.setText("Pesquisar");
    jBPesquisa.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jBPesquisaActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                    .addGap(35, 35, 35)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 752, Short.MAX_VALUE))
                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                            .addComponent(jTPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 608, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 49, Short.MAX_VALUE)
                            .addComponent(jBPesquisa)
                            .addGap(41, 41, 41))
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 777, Short.MAX_VALUE))))
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jTPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jBPesquisa))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(18, 18, 18)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 247, Short.MAX_VALUE)
            .addContainerGap())
    );

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

    private void jTControleLinhaSelecionada(JTable jT) {
        if (jT.getSelectedRow() != -1) {
            
            jTEmpresa.setText(String.valueOf(c1.get(jT.getSelectedRow()).getEmpresa()));
            jTMotorista.setText(c1.get(jT.getSelectedRow()).getMotorista());
            jTNomMotorista.setText(c1.get(jT.getSelectedRow()).getNomMotorista());
            jTData.setText(new SimpleDateFormat("dd/MM/yyyy").format(c1.get(jT.getSelectedRow()).getData()));
            jTPontuacao.setText(String.valueOf(c1.get(jT.getSelectedRow()).getPontuacao()));
            jTCnh.setText(String.valueOf(c1.get(jT.getSelectedRow()).getCnh()));




        }
    }

    private void listaContatos() throws SQLException {
        ControleDao dao = new ControleDao();
        c1 = dao.listaContatos("%" + jTPesquisa.getText().trim() + "%");

        mostraContatos(c1);


    }

    private void mostraContatos(List<Controle> c1) {
        while (tmControle.getRowCount() > 0) {
            tmControle.removeRow(0);
        }
        if (c1.size() == 0) {

            JOptionPane.showMessageDialog(this, "Nenhum contato encontrado!!!");


        } else {

            String[] campos = new String[]{null, null, null, null};
            for (int i = 0; i < c1.size(); i++) {
                tmControle.addRow(campos);
                tmControle.setValueAt(c1.get(i).getEmpresa(), i, 0);
                tmControle.setValueAt(c1.get(i).getMotorista(), i, 1);
                tmControle.setValueAt(c1.get(i).getNomMotorista(), i, 2);
                tmControle.setValueAt(c1.get(i).getCnh(), i, 3);
            }

        }
    }

    private void jTMotoristaKeyReleased(java.awt.event.KeyEvent evt) {                                        
        // TODO add your handling code here:

        if (evt.getKeyCode() != 32 & evt.getKeyCode() != 8 & evt.getKeyCode() != 37 & evt.getKeyCode() != 39) //JOptionPane.showMessageDialog(null, evt.getKeyCode(),"Código da tecla", 0);
        {
            jTMotorista.setText(jTMotorista.getText().toUpperCase());
        }
    }                                       

    private void jTNomMotoristaKeyReleased(java.awt.event.KeyEvent evt) {                                           
        // TODO add your handling code here:
        if (evt.getKeyCode() != 32 & evt.getKeyCode() != 8 & evt.getKeyCode() != 37 & evt.getKeyCode() != 39) //JOptionPane.showMessageDialog(null, evt.getKeyCode(),"Código da tecla", 0);
        {
            jTNomMotorista.setText(jTNomMotorista.getText().toUpperCase());
        }
    }                                          

    private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            salvar();
            JOptionPane.showMessageDialog(this, "Dados atualizados!!!");
            // TODO add your handling code here:
            // TODO add your handling code here:
        } catch (SQLException ex) {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(this, "Ocorreu um erro e as informações não foram gravadas no banco de dados!!!");
        }
        // TODO add your handling code here:

        // TODO add your handling code here:
}                                        

    private void jBSairActionPerformed(java.awt.event.ActionEvent evt) {                                       
        System.exit(0);      // TODO add your handling code here:
}                                      

    private void jBPesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try {
            // TODO add your handling code here:
            listaContatos();


        } catch (SQLException ex) {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
        }
}                                          

    private void jTPontuacaoKeyReleased(java.awt.event.KeyEvent evt) {                                        
        // TODO add your handling code here:
    }                                       
    public void salvar() throws SQLException {
        Controle c1 = new Controle();
        ControleDao dao = new ControleDao();

        if (jTId.getText().equals("")) {
            try {

                c1.setEmpresa(jTEmpresa.getText().toUpperCase());
                c1.setMotorista(jTMotorista.getText().toUpperCase());
                try {
                    c1.setData(formataData(jTData.getText()));
                } catch (Exception ex) {
                    Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
                }

                c1.setPontuacao(Integer.getInteger(jTPontuacao.getText()));

                dao.adiciona(c1); // TODO add your handling code here:
                JOptionPane.showMessageDialog(null, "Contato cadastrado com sucesso!!!");


            } catch (SQLException ex) {
                Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
                JOptionPane.showMessageDialog(null, "Ocorreu algum erro verifique!!!");

            }
            //insert
        } else {
            {

                c1.setEmpresa(jTEmpresa.getText().toUpperCase());
                c1.setMotorista(jTMotorista.getText().toUpperCase());
                try {
                    c1.setData(formataData(jTData.getText()));
                } catch (Exception ex) {
                    Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
                }
                c1.setPontuacao(Integer.getInteger(jTPontuacao.getText()));
                
                dao.altera(c1);
                JOptionPane.showMessageDialog(null, "Contato alterado com sucesso!!!");

            }
            //update
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Principal().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jBPesquisa;
    private javax.swing.JButton jBSair;
    private javax.swing.JButton jBSalvar;
    private javax.swing.JLabel jLCnh;
    private javax.swing.JLabel jLCodigoMotorista;
    private javax.swing.JLabel jLDataAtualizacao;
    private javax.swing.JLabel jLEmpresa;
    private javax.swing.JLabel jLId;
    private javax.swing.JLabel jLNomeMotorista;
    private javax.swing.JLabel jLPontuacao;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTCnh;
    private javax.swing.JTable jTControle;
    private javax.swing.JFormattedTextField jTData;
    private javax.swing.JTextField jTEmpresa;
    private javax.swing.JTextField jTId;
    private javax.swing.JTextField jTMotorista;
    private javax.swing.JTextField jTNomMotorista;
    private javax.swing.JTextField jTPesquisa;
    private javax.swing.JTextField jTPontuacao;
    // End of variables declaration                   
}
private void jTControleLinhaSelecionada(JTable jT) {
        if (jT.getSelectedRow() != -1) {
            
            jTEmpresa.setText(String.valueOf(c1.get(jT.getSelectedRow()).getEmpresa()));
            jTMotorista.setText(c1.get(jT.getSelectedRow()).getMotorista());
            jTNomMotorista.setText(c1.get(jT.getSelectedRow()).getNomMotorista());
            jTData.setText(new SimpleDateFormat("dd/MM/yyyy").format(c1.get(jT.getSelectedRow()).getData()));
            jTPontuacao.setText(String.valueOf(c1.get(jT.getSelectedRow()).getPontuacao()));
            jTCnh.setText(String.valueOf(c1.get(jT.getSelectedRow()).getCnh()));




        }
    }

Neste trexo do codigo que faço trazer nos campos a informação… quando seleciona um campo da table… estava funcionando… mas agora nao ocnsigo colocar o id…
O objetivo é na primeira vez que eu pegar um registro e que realmente nao traga o id a data e nem os pontos… pois eles referem-se a tabela que criei… a ideia e de atualizar aqui e no salvar dar o insert… apartir dai da proxima vez sim consultar… ai quando alterar fazer o update

caioamante

Alguem pode me ajudar?

Marky.Vasconcelos

Voce podia usar um TableModel mais inteligente que trabalhsa-se com essa lista de objetos que voce tem. Depois voce verifica se o objeto já tem id caso tenha só faça o update ou save se necessario.

Criado 28 de janeiro de 2010
Ultima resposta 1 de fev. de 2010
Respostas 5
Participantes 3