Ir ao conteúdo
  • Cadastre-se
Victor Gimenez

Erro ao inserir e alterar dados em jdialog

Recommended Posts

Bom dia pessoal, 
Estou com um problema aqui, esse código peguei de um exemplo e modifiquei poucas coisas nele como por exemplo as classes, objetos, métodos e a forma de declarar cada statement e preparedStatement na classe DAO, do restante mantive a mesma coisa, a aplicação está listando normalmente os dados inseridos no banco (inseri eles através do cmd) e dá para fazer as pesquisas através do ID esse sendo auto incremento. O problema vem quando tento inserir, alterar ou excluir algum dado que está fazendo ele gerar aquelas chatas exceções. 

Abaixo seguem trechos das partes do código que constam os erros:

 

/* Evento Deletar public class FuncionarioSearchView extends javax.swing.JFrame */  
private void btDeleteFuncActionPerformed(java.awt.event.ActionEvent evt) {                                               
          
        try{  
           //obter a linha selecionada   
           int linha = table.getSelectedRow();  
           //certificar-se que a linha foi selecionada  
           if (linha < 0){  
               JOptionPane.showMessageDialog(FuncionarioSearchView.this, "Você deve selecionar uma linha", "Erro",   
                       JOptionPane.ERROR_MESSAGE);  
              return;  
           }  
           //preparar usuário  
           int resposta = JOptionPane.showConfirmDialog(FuncionarioSearchView.this, "Deseja deletar esse usuário? ",  
                   "Deletar Usuário", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);  
              
           if(resposta != JOptionPane.YES_OPTION){  
               return;  
           }  
           //obter o seguinte funcionário  
           Funcionario funcTemp = (Funcionario) table.getValueAt(linha, FuncionarioModelo.OBJECT_COL);  
             
           //deletar funcionário  
           funcdao.excluir(funcTemp.getId());  
             
           //atualizar GUI  
           atualizarFuncionarios();  
             
        } catch (Exception e){  
           JOptionPane.showMessageDialog(FuncionarioSearchView.this,  
                   "Erro ao excluir funcionário: " + e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);  
        }          
    }       
  
/* Evento Alterar public class FuncionarioSearchView chamando a classe public class FuncionarioUpdateView extends javax.swing.JDialog */  
private void btAlterarFuncActionPerformed(java.awt.event.ActionEvent evt) {                                                
          
        //obter dados do item selecionado  
        int linha = table.getSelectedRow();  
          
        //certificar que a linha foi selecionada  
        if(linha < 0){  
           JOptionPane.showMessageDialog(FuncionarioSearchView.this,   
                   "Você deve selecionar um funcionario na lista", "Erro", JOptionPane.ERROR_MESSAGE);  
           return;  
        }  
        //receber dados do empregado seguinte  
        Funcionario funcionarioTemp = (Funcionario) table.getValueAt(linha, FuncionarioModelo.OBJECT_COL);  
          
        //criar JDialog  
        FuncionarioUpdateView update = new FuncionarioUpdateView(FuncionarioSearchView.this, funcdao, funcionarioTemp, true);  
          
        //mostrar JDialog  
        update.setVisible(true);  
          
    }   
  
/* Evento Adicionar Funcionário public class FuncionarioAddView extends javax.swing.JDialog */  
protected void salvarFuncionario() {  
        //receber dados da gui  
        String nome = tfNome.getText();  
        String sobrenome = tfSobrenome.getText();  
        String email = tfEmail.getText();  
        String departamento = tfDepartamento.getText();  
        String salarioStr = tfSalario.getText();  
          
        BigDecimal salario = convertStringToBigDecimal(salarioStr);  
              
        Funcionario funcionarioTemp = new Funcionario(nome, sobrenome, email, departamento, salario);  
          
        try{  
            //salvar no bd  
            funcdao.inserir(funcionarioTemp);  
            //fechar JDialog  
            setVisible(false);  
            dispose();  
            //atualizar lista da gui  
            funcview.atualizarFuncionarios();  
            //mostrar mensagem de operação sucedida  
            JOptionPane.showMessageDialog(funcview, "Funcionario adicionado. ", "Adicionado!", JOptionPane.INFORMATION_MESSAGE);  
        }catch(Exception e){  
            JOptionPane.showMessageDialog(funcview, "Erro ao salvar funcionário: " + e.getMessage() , "Erro", JOptionPane.ERROR_MESSAGE);  
        }  
    }  

 

Dai na execução quando vou inserir ou deletar ele não executa o try e vai direto para o bloco catch exibindo a mensagem de erro: "Erro ao excluir funcionário: null" ou para inserir "Erro ao inserir funcionário: null" e para alterar mesma coisa, quando eu seleciono um funcionário da lista e clico alterar ele dá a mensagem Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException. 

Como eu faço agora para achar o objeto que está faltando e corrigir essa exceção?! Estou perdido aqui 
Muito Obrigado!

erro1.jpg

erro2.jpg

SwingGuiJdbc.rar

Editado por Simon Viegas
Editar título

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 24/08/2016 às 16:28, Jones Damas disse:

Coloque esse comando e.printStackTrace(); dentro do catch para ver detalhes do erro.

 

 

Então, eu fiz isso agora, dai deu esse resultado:
 

//botão delete
java.lang.NullPointerException
	at com.jdbc.buscarfuncionarios.dao.FuncionarioDAO.excluir(FuncionarioDAO.java:93)
	at com.jdbc.buscarfuncionarios.view.FuncionarioSearchView.btDeleteFuncActionPerformed(FuncionarioSearchView.java:241)
	at com.jdbc.buscarfuncionarios.view.FuncionarioSearchView.access$300(FuncionarioSearchView.java:18)
	at com.jdbc.buscarfuncionarios.view.FuncionarioSearchView$4.actionPerformed(FuncionarioSearchView.java:95)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6535)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6300)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4891)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

//botão inserir
    java.lang.NullPointerException
	at com.jdbc.buscarfuncionarios.view.FuncionarioAddView.salvarFuncionario(FuncionarioAddView.java:278)
	at com.jdbc.buscarfuncionarios.view.FuncionarioAddView.btOkActionPerformed(FuncionarioAddView.java:179)
	at com.jdbc.buscarfuncionarios.view.FuncionarioAddView.access$000(FuncionarioAddView.java:22)
	at com.jdbc.buscarfuncionarios.view.FuncionarioAddView$1.actionPerformed(FuncionarioAddView.java:83)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6535)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6300)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4891)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
	at java.awt.Dialog.show(Dialog.java:1084)
	at java.awt.Component.show(Component.java:1673)
	at java.awt.Component.setVisible(Component.java:1625)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at com.jdbc.buscarfuncionarios.view.FuncionarioSearchView.btNovoFuncActionPerformed(FuncionarioSearchView.java:162)
	at com.jdbc.buscarfuncionarios.view.FuncionarioSearchView.access$100(FuncionarioSearchView.java:18)
	at com.jdbc.buscarfuncionarios.view.FuncionarioSearchView$2.actionPerformed(FuncionarioSearchView.java:81)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6535)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6300)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4891)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Praticamente a mesma coisa também no alterar, todos gerando a mesma exceção dai agora só não sei como tratar esse tipo de exceção

Editado por Victor Gimenez
Detalhes adicionais

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Victor Gimenez Bom dia, você esqueceu de dar um  new no objeto empdao antes de inserir no metodo salvarEmpregado. imagino que nos outros metodos tambem.

 try{
            empdao = new EmpregadoDAO();
            //salvar no bd
            empdao.inserir(empregadoTemp);
            //fechar JDialog
            setVisible(false);
            dispose();
            //atualizar lista da gui
            empview.atualizarEmpregados();
            //mostrar mensagem de operação sucedida
            JOptionPane.showMessageDialog(empview, "Empregado adicionado. ", "Adicionado!", JOptionPane.INFORMATION_MESSAGE);
        }catch(Exception e){
            JOptionPane.showMessageDialog(empview, "Erro ao salvar empregado: " + e.getMessage() , "Erro", JOptionPane.ERROR_MESSAGE);
            
        }

 

 

 

 

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jones!! Demorei um pouco aqui, vi agora seu post e fiz o que você disse e é isso dai mesmo!! Vaaleu pela ajuda :) Agora percebi que esse nullPointerException é quando falta um objeto a ser chamado dentro do método!! Agora deu certo!! Mais uma vez obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×