[Resolvido] - Ajuda - Erro na inclusão de dados

Boa noite a todos.

Estou tentando fazer um programa sobre uma loja de informatica utilizando o hibernate e estou com um problema nas operações de controle para inclusão de dados no banco. Me parece que a minha classe de controle consegue estabelecer a conexão com o banco porém quando em clico em “Incluir” dá erro.

Eu fiz esta classe de controle parecida com uma outra que o professor havia passado em sala de aula porém por ainda estar iniciando nessa area de programação estou com bastante dificuldade em encontrar o erro.

[color=red]
Segue a classe de controle:
[/color]


package Controle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.xml.bind.ParseConversionEvent;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import Cliente.cliente;
import DAO.DAOPessoaFisica;
import Pessoa.pessoaFisica;
import Produto.produto;
import visao.CadastroPF;
import Tarefas.compra;

public class controlePessoaFisica implements ActionListener {
	private JFrame visao = null;
	private JPanel painel = null;
	private pessoaFisica pessoafisica = null;
	private cliente cliente = null;
	private produto produto = null;
	private compra compra = null;
	private CadastroPF cadastroPF = null;
	private DAOPessoaFisica dao = null;
	private JTextField txtNome = null;
	private JTextField txtRg = null;
	private JTextField txtCpf = null;
	private JTextField txtDatNasc = null;
	private JTextField txtRua = null;
	private JTextField txtNumero = null;
	private JTextField txtComplemento = null;
	private JTextField txtBairro = null;
	private JTextField txtCidade = null;
	private JTextField txtCep = null;
	private JTextField txtTelefone = null;
	private JTextField txtEmail = null;
	private JRadioButton rdbtnMasculino = null;
	private JRadioButton rdbtnFeminino = null;
    
                 public void actionPerformed(ActionEvent e) {

    	SessionFactory sf = new Configuration().configure().buildSessionFactory();
        Session session = sf.openSession();
        Transaction tx = session.beginTransaction();

        pessoaFisica pf = new pessoaFisica();

       
        if (e.getActionCommand() == "Incluir"){
        	                pessoafisica = new pessoaFisica();
    		pessoafisica.setNome(txtNome.getText());
    		pessoafisica.setRg(txtRg.getText());
    		pessoafisica.setCpf(txtCpf.getText());
    		//pessoafisica.setDataNasc(txtDatNasc.getText()); Falta tratar a data de nascimento
    		pessoafisica.setLogradouro(txtRua.getText());
    		pessoafisica.setNumero((Integer.parseInt(txtNumero.getText())));
    		pessoafisica.setComplemento(txtComplemento.getText());
    		pessoafisica.setBairro(txtBairro.getText());
    		pessoafisica.setCidade(txtCidade.getText());
    		pessoafisica.setCep(txtCep.getText());
    		pessoafisica.setTelefone(txtTelefone.getText());
    		pessoafisica.setEmail(txtEmail.getText());
    		session.saveOrUpdate(pessoafisica); 
    		tx.commit();
    	        session.close();
        }else {
                    JOptionPane.showMessageDialog(null, "Erro");
                }                
            }
    {
}
    { }      
        else if (e.getSource() == cadastroPF.btnConsultar) {
            if( cadastroPF.txtCPF.getText().equals("") ) {
            JOptionPane.showMessageDialog(null, "Insira o CPF para a consulta!");
            } else {
            int cpf = Integer.parseInt( cadastroPF.txtCPF.getText() );
            pessoafisica = dao.buscar(pessoafisica);
            if( pessoafisica == null ) {
            JOptionPane.showMessageDialog(null, "Usuário não encontrado");
} else {
      cadastroPF.txtNome.setText( pessoafisica.getNome() );
      cadastroPF.txtRg.setText((Integer.toString(pessoafisica.getRg());
      cadastroPF.txtCPF.setText(pessoafisica.getCpf());
      cadastroPF.txtDatNasc.setText(pessoafisica.getDataNasc().toString());
      cadastroPF.txtTelefone.setText( pessoafisica.getTelefone());
      cadastroPF.txtEmail.setText( pessoafisica.getEmail());
      cadastroPF.txtRua.setText( pessoafisica.getLogradouro() );
      cadastroPF.txtNumero.setText(Integer.toString(pessoafisica.getNumero()));
      cadastroPF.txtComplemento.setText(pessoafisica.getComplemento());
      cadastroPF.txtBairro.setText(pessoafisica.getBairro());
      cadastroPF.txtCidade.setText(pessoafisica.getCidade());
      cadastroPF.txtCep.setText(pessoafisica.getCep());
}
}
}
        
         else if (e.getSource() == cadastroPF.btnSair) {
         cadastroPF.dispose();
}
            else if (e.getSource() == cadastroPF.btnLimpar){
            cadastroPF.txtNome.setText(null);
            cadastroPF.txtRg.setText((null);
            cadastroPF.txtCPF.setText(null);
            cadastroPF.txtDatNasc.setText(null);
            cadastroPF.txtTelefone.setText(null);
            cadastroPF.txtEmail.setText(null);
            cadastroPF.txtRua.setText(null);
            cadastroPF.txtNumero.setText(null);
            cadastroPF.txtComplemento.setText(null);
            cadastroPF.txtBairro.setText(null);
            cadastroPF.txtCidade.setText(null);
            cadastroPF.txtCep.setText(null);
            }        	
        else  if (e.getSource() == cadastroPF.btnAlterar){
        if( cadastroPF.txtNome.getText().equals("") || cadastroPF.txtCPF.getText().equals("") ) {
        JOptionPane.showMessageDialog(null,"Insira todos os Dados!");
        } else {
        if( dao.alterar(pessoafisica) ) {
        JOptionPane.showMessageDialog(null, "Pessoa cadastrada com Sucesso");
        } else {
        JOptionPane.showMessageDialog(null, "Erro");
        } }               
        }
        public void abrir() {
        cadastroPF.setVisible(true);
    }
}

[color=red]DAO[/color]

package DAO;

import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;

import Pessoa.pessoaFisica;
import Util.CriarSessionFactory;

public class DAOPessoaFisica {

    private Session session = null;

    public DAOPessoaFisica() {
        try {
            
        	if( session == null ) {
                session = CriarSessionFactory.getSessionFactory().openSession();
            }
            
        } catch (Exception e) {
        }
    }

    public boolean incluir(pessoaFisica pessoafisica) {
        try {
            session.beginTransaction();
            session.save( pessoafisica );
            session.getTransaction().commit();
            return true;
        } catch (Exception e) {
            System.out.println("DAOPessoaFisica Erro: " + e);
            return false;
        }
    }

    public boolean alterar(pessoaFisica pessoafisica) {
        try {
            session.beginTransaction();
            session.update( pessoafisica );
            session.getTransaction().commit();
            return true;
        } catch (Exception e) {
            System.out.println("DAOPessoaFisica Erro: " + e);
            return false;
        }
    }

    public boolean excluir(pessoaFisica pessoafisica) {
        try {
            session.beginTransaction();
            session.delete( pessoafisica );
            session.getTransaction().commit();
            return true;
        } catch (Exception e) {
            System.out.println("DAOPessoaFisica: " + e);
            return false;
        }
    }

    public pessoaFisica buscar(pessoaFisica pessoafisica) {
        try {
            session.beginTransaction();
            session.getTransaction().commit();
            return pessoafisica;
        } catch (Exception e) {
            System.out.println("DAOProduto Erro: " + e);
            return null;
        }
    }
    
    public List<Produto> relatorio( ) {
        try {
            session.beginTransaction();
            
           Criteria criteria = this.session.createCriteria(Produto.class);  
           criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);  
            
           session.getTransaction().commit();
            
           return criteria.list();
            
        } catch (Exception e) {
            System.out.println("DAOProduto Erro: " + e);
            return null;
        }
    }

[color=red]O erro:[/color]

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Controle.controlePessoaFisica.actionPerformed(controlePessoaFisica.java:59) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

O erro está aqui neste trecho pessoafisica.setNome(txtNome.getText());.

Agora minhas perguntas são:

1 - Como eu faço para pegar estes dados da tela e gravar no banco?

2 - Caso esta tela tenha campo de várias tabelas, tem como fazer esta inserção?

Quem puder me ajudar, ou até mesmo dar uma dica eu agradeço pois já pesquisei sobre isto mas nenhuma das informações que obtive resultou na resolução do problema.

Desde já agradeço.

Abs

Carlos

java.lang.NullPointerException

Sua variável txtNome por algum motivo está nula… Por isso não consegue usar o método .getText() dela…

MateusBuck,

Mesmo eu acertando os “null”, o mesmo problema persiste!

O problema é na mesma linha? Se for vc ainda nao corrigiu.

Pessoal, eu alterei toda a minha classe de controle conforme o codigo abaixo:

[code]package Controle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import modelo.;
import Pessoa.
;
import Tarefas.;
import Cliente.
;
import Produto.*;
import DAO.DAOPessoaFisica;
import Util.CriarSessionFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import visao.CadastroPF;

public class controleClientePF implements ActionListener{
private JFrame visao;
private JPanel painel;
private pessoaFisica Pessoafisica;
private cliente Cliente;
private produto Produto;
private compra Compra;
private DAOPessoaFisica dao;
private CadastroPF cadastroPF;
private JTextField txtNome;
private JTextField txtRg;
private JTextField txtCpf;
private JTextField txtDatNasc;
private JTextField txtRua;
private JTextField txtNumero;
private JTextField txtComplemento;
private JTextField txtBairro;
private JTextField txtCidade;
private JTextField txtCep;
private JTextField txtTelefone;
private JTextField txtEmail;
private JComboBox cmbUF;
private JRadioButton rdbMasculino;
private JRadioButton rdbFeminino;
private JButton btnIncluir;
private JButton btnConsultar;
private JButton btnAlterar;
private JButton btnLimpar;
private JButton btnSair;
private JButton btnExcluir;
@Override
public void actionPerformed(ActionEvent e) {
painel = (JPanel)visao.getContentPane();
txtNome = (JTextField)painel.getComponent(17);
txtRg = (JTextField)painel.getComponent(16);
txtCpf = (JTextField)painel.getComponent(18);
txtDatNasc = (JTextField)painel.getComponent(19);
txtTelefone = (JTextField)painel.getComponent(27);
txtEmail = (JTextField)painel.getComponent(28);
txtRua = (JTextField)painel.getComponent(20);
txtNumero = (JTextField)painel.getComponent(21);
txtComplemento = (JTextField)painel.getComponent(22);
txtBairro = (JTextField)painel.getComponent(23);
txtCidade = (JTextField)painel.getComponent(24);
txtCep = (JTextField)painel.getComponent(26);
cmbUF = (JComboBox)painel.getComponent(25);
rdbFeminino = (JRadioButton)painel.getComponent(30);
rdbMasculino = (JRadioButton)painel.getComponent(29);
btnIncluir = (JButton)painel.getComponent(31);
btnExcluir = (JButton)painel.getComponent(32);
btnConsultar = (JButton)painel.getComponent(33);
btnAlterar = (JButton)painel.getComponent(34);
btnLimpar = (JButton)painel.getComponent(35);
btnSair = (JButton)painel.getComponent(36);

	try{
		if (e.getActionCommand().equals("Incluir")){
			incluir();
		}
		else if (e.getActionCommand().equals("Alterar")){
			alterar();
		}
		else if (e.getActionCommand().equals("Consultar")){
			consultar();
		}
		else if (e.getActionCommand().equals("Excluir")){
			excluir();
		}
		else if (e.getActionCommand().equals("Limpar")){
			limpar();
		}
		else
			visao.dispose();
			}
			catch (Exception e1) {
				JOptionPane.showMessageDialog(visao, "Erro de operação");
			}
		}
			private void incluir()throws Exception{
				Pessoafisica = new pessoaFisica();
				Pessoafisica.setNome(txtNome.getText());
				Pessoafisica.setRg(txtRg.getText());
				Pessoafisica.setCpf(txtCpf.getText());
				//pessoafisica.setDataNasc(txtDatNasc.getText()); Falta tratar a data de nascimento
				Pessoafisica.setLogradouro(txtRua.getText());
				Pessoafisica.setNumero((Integer.parseInt(txtNumero.getText())));
				Pessoafisica.setComplemento(txtComplemento.getText());
				Pessoafisica.setBairro(txtBairro.getText());
				Pessoafisica.setCidade(txtCidade.getText());
				Pessoafisica.setCep(txtCep.getText());
				Pessoafisica.setTelefone(txtTelefone.getText());
				Pessoafisica.setEmail(txtEmail.getText());
				dao.incluir(Pessoafisica);
				limpar();
				
			}
			private void excluir() throws Exception{
				Pessoafisica = new pessoaFisica();
				Pessoafisica.setCpf(txtCpf.getText());
				JOptionPane.showMessageDialog(visao, "Exclusão realizada com sucesso!");
				dao.excluir(Pessoafisica);
				limpar();
			}
			private void consultar() throws Exception{
				Pessoafisica = new pessoaFisica();
				Pessoafisica.setCpf(JOptionPane.showInputDialog(visao,"Informe o CPF para consulta: "));
				dao.buscar(Pessoafisica);
				txtNome.setText(Pessoafisica.getNome());
				txtRg.setText(Pessoafisica.getRg());
				txtCpf.setText(Pessoafisica.getCpf());
				txtDatNasc.setText((Pessoafisica.getDataNasc().toString()));
				txtTelefone.setText(Pessoafisica.getTelefone());
				txtEmail.setText(Pessoafisica.getEmail());
				txtRua.setText(Pessoafisica.getLogradouro());
				txtNumero.setText(Integer.toString(Pessoafisica.getNumero()));
				txtComplemento.setText(Pessoafisica.getComplemento());
				txtBairro.setText(Pessoafisica.getBairro());
				txtCidade.setText(Pessoafisica.getCidade());
				txtCep.setText(Pessoafisica.getCep());
				}
			
			private void alterar()throws Exception{
				Pessoafisica = new pessoaFisica();
				Pessoafisica.setNome(txtNome.getText());
				Pessoafisica.setRg(txtRg.getText());
				Pessoafisica.setCpf(txtCpf.getText());
				//pessoafisica.setDataNasc(txtDatNasc.getText()); 
				Pessoafisica.setLogradouro(txtRua.getText());
				Pessoafisica.setNumero((Integer.parseInt(txtNumero.getText())));
				Pessoafisica.setComplemento(txtComplemento.getText());
				Pessoafisica.setBairro(txtBairro.getText());
				Pessoafisica.setCidade(txtCidade.getText());
				Pessoafisica.setCep(txtCep.getText());
				Pessoafisica.setTelefone(txtTelefone.getText());
				Pessoafisica.setEmail(txtEmail.getText());
				dao.alterar(Pessoafisica);
				JOptionPane.showMessageDialog(visao, "Alteração realizada com sucesso");
				limpar();
			}
			private void limpar(){
				txtNome.setText(null);
				txtRg.setText(null);
				txtCpf.setText(null);
				txtDatNasc.setText(null);
				txtTelefone.setText(null);
				txtEmail.setText(null);
				txtRua.setText(null);
				txtNumero.setText(null);
				txtComplemento.setText(null);
				txtBairro.setText(null);
				txtCidade.setText(null);
				txtCep.setText(null);
				cmbUF.setSelectedItem(null);
				rdbFeminino.setSelectedIcon(null);
				rdbMasculino.setSelectedIcon(null);
			
	}
}
[/code]

Agora o erro que dá é esse:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Controle.controleClientePF.actionPerformed(controleClientePF.java:60)

Referente a esta linha:

painel = (JPanel)visao.getContentPane();

o getContentPane não pode ficar em branco???É esse o erro?? Mesmo quando eu atribuo o valor 0 o erro persiste.

Obrigado

Abs

Carlos

Mesmo caso… Vc está tentando usar o método getContentPane() de um objeto (JFrame no caso) vazio/nulo…
Vc vai precisar instanciar o seu objeto visao antes de comecar a usar ele…

Faz uns testes ai…

Desisto…to ficando maluco com isso!

Se alguem se interessar em fazer um “freela” me envie mp por favor pra podermos negociar. Preciso concluir um projeto para a faculdade.

Agradeço aos que tentaram em ajudar.

Abs

Resolvido.

O erro era bobo, mas pra quem não conhece torna-se um bicho de 7 cabeças.

O problema estava na ordem dos meus .getComponents que estavam errados.

Valeu pela ajuda e paciência galera.

Abraço