Programa que mostra algumas informações sem utilização de banco de dados

3 respostas
L

Olá pessoal!
Sou iniciante no java e estou fazendo um curso, o qual me propôs um programa para ser criado que mostrasse algumas informações inseridas por meio de um formulario sem precisar de banco de dados,mas estou tendo alguns problemas:

1. O eclipse não executa o programa e retorna os seguintes erros:
[color=red]Exception in thread "main"java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at Cadastro.<init>(Cadastro.java:56)
at Cadastro.main(Cadastro.java:136)[/color]

2. Segue o código,analisei várias vezes mas mesmo assim não consegui encontrar o erro que o eclipse encontra
//Projeto a ser resumido a partir da página

import java.awt.*;
import java.awt.event.*; 
import java.util.*;
import javax.swing.*;

@SuppressWarnings("serial")
public class Cadastro extends JFrame implements ActionListener{
	private JTextField Nome,Telefone,Telefone2,Telefone3,Endereco,Cpf,Rg,Email,Numero,
	complemento,cidade,bairro,cep,data_nascimento;
	private JButton cadas,consul,limpa;
	private JLabel nome,endere,tele,tele1,tele2,Cadastro_de,cpf,email,rg,numb,comple,cid,bair,cp,dt_nasc;
	private JComboBox city;
	public Pessoa pa[]=new Pessoa[10];
	Scanner s = new Scanner(System.in);
	int contador = 0;
	public Cadastro() {
		super("Cadastro de Clientes");
		setSize(400,400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		cadas = new JButton("Cadastro");
		consul = new JButton("Consulta");
		limpa = new JButton("Limpar");
		nome = new JLabel("Nome:");
		endere = new JLabel("Endereço");
		tele = new JLabel("Fone Comercial:");
		tele1 = new JLabel("Fone Residencial:");
		tele2 = new JLabel("Cel:");
		Cadastro_de = new JLabel("Cadastro Exercicio LP2:");
		numb = new JLabel("Numero:");
		comple = new JLabel("Complemento:");
		bair = new JLabel("Bairro:");
		cid = new JLabel("Cidade:");
		cp = new JLabel("CEP:");
		dt_nasc = new JLabel("Data de Nascimento:");
		rg = new JLabel("RG:");
		cpf = new JLabel("CPF");
		Numero = new JTextField();
		complemento = new JTextField();
		bairro = new JTextField();
		cidade = new JTextField();
		cep = new JTextField();
		city = new JComboBox();
		//city = new JTextField();
		data_nascimento = new JTextField();
		//Adiciona cidades ao combobox
		city.addItem("Vitoria da Conquista");
		city.addItem("Itapetinga");
		city.addItem("Barra da Choça");
		city.addItem("Brumado");
		city.addItem("Poçoes");
		getContentPane().add(cadas);
		getContentPane().add(consul);
		getContentPane().add(Nome);
		getContentPane().add(Endereco);
		getContentPane().add(Telefone);
		getContentPane().add(Telefone2);
		getContentPane().add(Telefone3);
		getContentPane().add(nome);
		getContentPane().add(tele);
		getContentPane().add(tele1);
		getContentPane().add(tele2);
		getContentPane().add(endere);
		getContentPane().add(Cpf);
		getContentPane().add(Rg);
		getContentPane().add(Email);
		getContentPane().add(Numero);
		getContentPane().add(numb);
		getContentPane().add(comple);
		getContentPane().add(complemento);
		getContentPane().add(bair);
		getContentPane().add(bairro);
		getContentPane().add(cep);
		getContentPane().add(cp);
		getContentPane().add(cidade);
		getContentPane().add(cid);
		getContentPane().add(city);
		getContentPane().add(dt_nasc);
		getContentPane().add(data_nascimento);
		getContentPane().add(rg);
		getContentPane().add(cpf);
		Nome.setBounds(60,60,430,20);
		Endereco.setBounds(60,90,160,20);
		//Telefone.setBounds(60,120,300,20);
		nome.setBounds(0,60,120,20);
		endere.setBounds(0,90,120,20);
		//tele.setBounds(0,120,120,20);
		Cadastro_de.setBounds(120,20,200,20);
		Nome.setBounds(60,60,430,20);
		Endereco.setBounds(60,90,160,20);
		//Telefone.setBounds(60,120,300,20);
		nome.setBounds(0,60,120,20);
		endere.setBounds(0,90,120,20);
		//tele.setBounds(0,120,120,20);
		Cadastro_de.setBounds(120,20,200,20);
		cid.setBounds(0,150,60,20);
		city.setBounds(60,150,120,20);
		//dt_nasc.setBounds(0,180,120,20);
		//data_nascimento.setBounds(120,180,100,20);
		tele.setBounds(0,210,120,20);
		tele1.setBounds(140,210,120,20);
		tele2.setBounds(270,210,120,20);
		Telefone.setBounds(60,210,70,20);
		Telefone2.setBounds(200,210,70,20);
		Telefone3.setBounds(290,210,70,20);
		rg.setBounds(0,180,120,20);
		Rg.setBounds(20,180,100,20);
		cpf.setBounds(120,180,120,20);
		Cpf.setBounds(145,180,100,20);
		dt_nasc.setBounds(250,180,120,20);
		data_nascimento.setBounds(370,180,120,20);
		cadas.setBounds(90,250,120,20);
		consul.setBounds(220,250,120,20);
		Cadastro_de.setBounds(220,250,120,20);
		nome.setForeground(Color.RED);
		endere.setForeground(Color.RED);
		tele.setForeground(Color.RED);
		cadas.addActionListener(this);
		consul.addActionListener(this);
		Nome.addActionListener(this);
		Telefone.addActionListener(this);
		Telefone2.addActionListener(this);
		Telefone3.addActionListener(this);
		Cpf.addActionListener(this);
		Rg.addActionListener(this);
		Email.addActionListener(this);
		city.addActionListener(this);
		complemento.addActionListener(this);
		bairro.addActionListener(this);
		Numero.addActionListener(this);
	}
	public static void main(String args[])
	{
		Cadastro obj = new Cadastro();
		obj.setVisible(true);
	}
	public void actionPerformed(ActionEvent acao)
	{
		if (acao.getSource()==cadas)
		{
			Pessoa p = new Pessoa();
			p.setNome(Nome.getText());
			p.setEndereco(Endereco.getText());
			p.setNumero1(Numero.getText());
			p.setTelefone(Telefone.getText());
			p.setTelefone4(Telefone2.getText());
			p.setTelefone5(Telefone3.getText());
			p.setEmail(Email.getText());
			p.setRG(Rg.getText());
			p.setCpf1(Cpf.getText());
			p.setBairro1(bairro.getText());
			p.setComplemento(complemento.getText());
			if (contador==0)
			{
				pa[0]=p;
				contador++;
				
			}
			else
			{
				contador++;
				pa[contador]=p;
			}
		}
		if(acao.getSource()==consul)
		{
			for(int i=0;i&lt;contador;i++)
			{
				JOptionPane.showMessageDialog(null,"--------------------"+"\nNome:"+pa[i].getNome()+
						"\nEndereço:"+pa[i].getEndereco()+
						"\nNumero:"+pa[i].getNumero1()+
						"\nBairro:"+pa[i].getBairro1()+
						"\nTelefone Residencial:"+pa[i].getTelefone4()+
						"\nTelefone Comercial:"+pa[i].getTelefone()+
						"\nTelefone Celular:"+pa[i].getTelefone5());
			}
		}
	}
	protected class Pessoa{
		private String nome1,endereco1,telefone1,telefone4,telefone5,rg1,cpf1,email1,cidade1,bairro1,numero1,complemento1,cep1;
		Pessoa()
		{
			nome1=endereco1=telefone1=telefone4=telefone5=bairro1=cidade1=rg1=cpf1=email1=numero1=complemento1=cep1=" ";
		}
		Pessoa(String complemento1,String nome1,String endereco1,String Telefone1,String Telefone4, String Telefone5,String bairro1,String cidade1,String rg1,String cpf1,String email1,String numero1)
		{
			this.nome1=nome1;
			this.endereco1=endereco1;
			this.telefone1=telefone1;
			this.telefone4=telefone4;
			this.telefone5=telefone5;
			this.rg1=rg1;
			this.cpf1=cpf1;
			this.email1=email1;
			this.bairro1=bairro1;
			this.cidade1=cidade1;
			this.numero1=numero1;
			this.complemento1=complemento1;
			this.cep1=cep1;
		}
		public void setNome(String nome1)
		{
			this.nome1=nome1;
		}
		public String getNome()
		{
			return nome1;
		}
		public void setEndereco (String endereco1)
		{
			this.endereco1=endereco1;
		}
		public String getEndereco()
		{
			return endereco1;
		}
		public void setTelefone(String telefone1)
		{
			this.telefone1=telefone1;
		}
		public String getTelefone()
		{
			return telefone1;
		}
		public void setTelefone4 (String telefone4)
		{
			this.telefone4=telefone4;
		}
		public String getTelefone4()
		{
			return telefone4 ;
		}
		public void setTelefone5 (String telefone5)
		{
			this.telefone5=telefone5;
		}
		public String getTelefone5()
		{
			return telefone5 ;
		}
		public void setEmail (String email1 )
		{
			this.email1=email1;
		}
		public String getEmail()
		{
			return email1;
		}
		public void setRG (String rg1 )
		{
			this.rg1=rg1;
		}
		public String getRG()
		{
			return rg1 ;
		}
		public void setCpf1 (String cpf1 )
		{
			this.cpf1=cpf1;
		}
		public String getCpf1()
		{
			return cpf1;
		}
		public void setCidade1 (String cidade1 )
		{
			this.cidade1=cidade1;
		}
		public String getCidade1()
		{
			return cidade1;
		}
		public void setBairro1 (String bairro1 )
		{
			this.bairro1=bairro1;
		}
		public String getBairro1()
		{
			return bairro1 ;
		}
		public void setComplemento (String complemento1 )
		{
			this.complemento1=complemento1;
		}
		public String getComplemento1()
		{
			return complemento1 ;
		}
		public void setNumero1 (String numero1 )
		{
			this.numero1=numero1;
		}
		public String getNumero1()
		{
			return numero1 ;
		}
		public void setCp1  (String cp1 )
		{
			this.cep1=cep1;
		}
		public String getCp1()
		{
			return cep1;
		}
	}
}

3. Se precisarem a versão do eclipse é o HELIOS e está rodando à partir de um pen drive.

4. Como no curso é cada um por si,você só tem a apostila e eu não consegui resolver sozinho e nenhum dos instrutores conseguiu me ajudar.

E obrigado pela a ajuda,ficarei grato se alguem conseguir me explicar como resolver este problema.
>

3 Respostas

jvkirk

Só sei que seu problema ta no construtor
to cheio de sono, amanha eu vejo direitin :X

D

Bom, você fez o seguinte:

getContentPane().add(cadas);  
        getContentPane().add(consul);  
        getContentPane().add(Nome);  <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(Endereco);   <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(Telefone);   <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(Telefone2);   <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(Telefone3);   <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(nome);  
        getContentPane().add(tele);  
        getContentPane().add(tele1);  
        getContentPane().add(tele2);  
        getContentPane().add(endere);  
        getContentPane().add(Cpf);   <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(Rg);   <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(Email);   <--- Adicionou o JTextField sem o instanciar
        getContentPane().add(Numero);  
        getContentPane().add(numb);  
        getContentPane().add(comple);  
        getContentPane().add(complemento);  
        getContentPane().add(bair);  
        getContentPane().add(bairro);  
        getContentPane().add(cep);  
        getContentPane().add(cp);  
        getContentPane().add(cidade);  
        getContentPane().add(cid);  
        getContentPane().add(city);  
        getContentPane().add(dt_nasc);  
        getContentPane().add(data_nascimento);  
        getContentPane().add(rg);  
        getContentPane().add(cpf);

você não fez o ‘‘new’’ destes JTextFields!

Dica… NullPointerExecpetion indica que o programa está tentando acessar algo que não existe, ou seja, NULO.

L

Muito obrigado Diego,
Nem tinha reparado que estava faltando a instancia de alguns objetos,o problema foi resolvido.
Depois só vou dar uma arrumada na interface por que está uma porcaria.

Valeu dnv.

Criado 26 de novembro de 2011
Ultima resposta 27 de nov. de 2011
Respostas 3
Participantes 3