Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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






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

×