Erro de Excepção

3 respostas
Vanilson

Pessoal eu estou a fazer um trabalho onde estou a implementar ficheiro e hash table mais no entanto estou a ter um erro de excepação quando eu clico no botão para salvar a informção, eis a excepção:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at Formulariopessoa.inserir(Formulariopessoa.java:288)
        at Formulariopessoa.actionPerformed(Formulariopessoa.java:336)
        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 Sour
ce)
        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)

Alguem sabe o pq dessa excepção, já quebrei a cabeça e não consegui resolver este problema…

3 Respostas

C

Manda o código…

Isso acontece quando vc tenta acessar algum objeto/variável que está com valor null atribuido.

Por exemplo:

int i = null; i = 10;

é pra dar a mesma exception

Vanilson

É um pouco extenso codigo, mais aqui vai:

Pessoa.java

import yb.hashtableyb.Gravavel;
import SwingComponents.StringBufferModelo;
import java.io.*;
public class Pessoa implements Gravavel
{
	private StringBufferModelo nome, localidade, bairro, registocriminal, boletimsanidade, estadocivil, nomepai, ocupacao,
								nomemae, tipocartaconducao, local, comuna, municipio, provincia, numerobi,dataemissaobi,
								arquivoidentifacaobi, datavalidadebi;
	private int idade, telefone, numerocartaconducao;
	public Pessoa()
	{
		/*this.nome = new StringBufferModelo("", 50);
		this.idade = 0;
		this.telefone = 0;
		this.localidade = new StringBufferModelo("", 50);
		this.bairro = new StringBufferModelo("", 50);
		this.registocriminal = new StringBufferModelo("", 50);
		this.boletimsanidade = new StringBufferModelo("", 50);
		this.estadocivil = new StringBufferModelo("", 50);
        this.nomepai = new StringBufferModelo("", 50);
		this.nomemae = new StringBufferModelo("", 50);
		this.numerocartaconducao = 0;
		this.tipocartaconducao = new StringBufferModelo("", 50);
		this.local = new StringBufferModelo("", 50);
		this.comuna = new StringBufferModelo("", 50);
		this.municipio = new StringBufferModelo("", 50);
		this.provincia = new StringBufferModelo("", 50);
		this.numerobi = new StringBufferModelo("", 50);
		this.dataemissaobi = new StringBufferModelo("", 50);
		this.arquivoidentifacaobi = new StringBufferModelo("", 50);
		this.datavalidadebi = new StringBufferModelo("", 50);*/
		this(0,0,0,"","","","","","","","","","","","","","","","","","");
		
	}
	public Pessoa(int idade, int telefone, int numerocartaconducao,String nome,String localidade,String bairro,String registocriminal,String boletimsanidade,
				String estadocivil,String nomepai,String ocupacao,String nomemae,String tipocartaconducao,String local,String comuna,String municipio, 
				String provincia,String numerobi,String dataemissaobi,String arquivoidentifacaobi,String datavalidadebi)
	{
		/*this.nome = new StringBufferModelo("nome", 50);
		this.idade = idade;
		this.telefone = telefone;
		this.localidade = new StringBufferModelo("localidade", 50);
		this.bairro = new StringBufferModelo("bairro", 50);
		this.registocriminal = new StringBufferModelo("registocriminal", 50);
		this.boletimsanidade = new StringBufferModelo("boletimsanidade", 50);
		this.estadocivil = new StringBufferModelo("estadocivil", 50);
        this.nomepai = new StringBufferModelo("nomepai", 50);
		this.nomemae = new StringBufferModelo("nomemae", 50);
		this.numerocartaconducao = numerocartaconducao;
		this.tipocartaconducao = new StringBufferModelo("tipocartaconducao", 50);
		this.local = new StringBufferModelo("local", 50);
		this.comuna = new StringBufferModelo("comuna", 50);
		this.municipio = new StringBufferModelo("municipio", 50);
		this.provincia = new StringBufferModelo("provincia", 50);
		this.numerobi = new StringBufferModelo("numerobi", 50);
		this.dataemissaobi = new StringBufferModelo("dataemissaobi", 50);
		this.arquivoidentifacaobi = new StringBufferModelo("arquivoidentifacaobi", 50);
		this.datavalidadebi = new StringBufferModelo("datavalidadebi ", 50);*/
		setNome(nome);
		setIdade(idade);
		setTelefone(telefone);
		setLocalidade(localidade);
		setBairro(bairro);
		setRegistocriminal(registocriminal);
		setBoletimsanidade(boletimsanidade);
		setEstadocivil(estadocivil);
		setNomepai(nomepai);
		setOcupacaopai(ocupacao);
		setNomemae(nomemae);
		setNumerocartaconducao(numerocartaconducao);
		setTipocartaconducao(tipocartaconducao);
		setLocal(local);
		setComuna(comuna);
		setMunicipio(municipio);
		setProvincia(provincia);
		setDataemissaobi(dataemissaobi);
		setArquivoidentifacaobi(arquivoidentifacaobi);
		setDatavalidadebi(datavalidadebi);
	}
	//Metódos dos Sets
	public void setNome(String nome)
	{
		this.nome = new StringBufferModelo(nome, 50);
	}
	public void setIdade(int idade)
	{
		this.idade = idade;
	}
	public void setTelefone(int telefone)
	{
		this.telefone = telefone;
	}
	public void setLocalidade(String localidade)
	{
		this.localidade = new StringBufferModelo("localidade", 50);
	}
	public void setBairro(String bairro)
	{
		this.bairro = new StringBufferModelo("bairro", 50);;
	}
	public void setRegistocriminal(String registocriminal)
	{
		this.registocriminal = new StringBufferModelo("registocriminal", 50);
	}
		public void setBoletimsanidade(String boletimsanidade)
	{
		this.boletimsanidade = new StringBufferModelo("boletimsanidade", 50);
	}
	public void setEstadocivil(String estadocivil)
	{
		this.estadocivil = new StringBufferModelo("estadocivil", 50);
	}
	public void setNomepai(String nomepai)
	{
		this.nomepai = new StringBufferModelo("nomepai", 50);
	}
	public void setOcupacaopai(String ocupacao)
	{
		this.ocupacao = new StringBufferModelo("ocupacao", 50);
	}
	public void setNomemae(String nomemae)
	{
		this.nomemae = new StringBufferModelo("nomemae", 50);;
	}
	public void setNumerocartaconducao(int numerocartaconducao)
	{
		this.numerocartaconducao = numerocartaconducao;
	}
	public void setTipocartaconducao(String tipocartaconducao)
	{
		this.tipocartaconducao = new StringBufferModelo("tipocartaconducao", 50);
	}
	public void setLocal(String local)
	{
		this.local = new StringBufferModelo("local", 50);
	}
	public void setComuna(String comuna)
	{
		this.comuna = new StringBufferModelo("comuna", 50);
	}
	public void setMunicipio(String municipio)
	{
		this.municipio = new StringBufferModelo("municipio", 50);
	}
	public void setProvincia(String provincia)
	{
		this.provincia = new StringBufferModelo("provincia", 50);
	}
		public void setNumerobi(String numerobi)
	{
		this.numerobi = new StringBufferModelo("numerobi", 50);
	}
	public void setDataemissaobi(String dataemissaobi)
	{
		this.dataemissaobi = new StringBufferModelo("dataemissaobi", 50);
	}
	public void setArquivoidentifacaobi(String arquivoidentifacaobi)
	{
		this.arquivoidentifacaobi = new StringBufferModelo("arquivoidentifacaobi", 50);
	}
	public void setDatavalidadebi(String datavalidadebi)
	{
		this.datavalidadebi = new StringBufferModelo("datavalidadebi", 50);
	}
	//Metódos dos Gets
	public String getNome()
	{
		return nome.toStringEliminatingSpaces();
	}
	public int getIdade()
	{
		return idade;
	}
	public int getTelefone()
	{
		return telefone;
	}
	public String getLocalidade()
	{
		return localidade.toStringEliminatingSpaces();
	}
	public String getBairro()
	{
		return bairro.toStringEliminatingSpaces();
	}
	public String geRegistocriminal()
	{
		return registocriminal.toStringEliminatingSpaces();
	}
	public String getBoletimsanidade()
	{
		return boletimsanidade.toStringEliminatingSpaces();
	}
	public String getEstadocivil()
	{
		return estadocivil.toStringEliminatingSpaces();
	}
	public String getNomepai()
	{
		return nomepai.toStringEliminatingSpaces();
	}
	public String getOcupacaopai()
	{
		return ocupacao.toStringEliminatingSpaces();
	}
	public String getNomemae()
	{
		return nomemae.toStringEliminatingSpaces();
	}
	public int getNumerocartaconducao()
	{
		return numerocartaconducao;
	}
	public String getTipocartaconducao()
	{
		return tipocartaconducao.toStringEliminatingSpaces();
	}
	public String getLocal()
	{
		return local.toStringEliminatingSpaces();
	}
	public String getComuna()
	{
		return comuna.toStringEliminatingSpaces();
	}
	public String getMunicipio()
	{
		return municipio.toStringEliminatingSpaces();
	}
	public String getProvincia()
	{
		return provincia.toStringEliminatingSpaces();
	}
	public String getNumerobi()
	{
		return numerobi.toStringEliminatingSpaces();
	}
	public String getDataemissaobi()
	{
		return dataemissaobi.toStringEliminatingSpaces();
	}
	public String getArquivoidentifacaobi()
	{
		return arquivoidentifacaobi.toStringEliminatingSpaces();
	}
	public String getDatavalidadebi()
	{
		return datavalidadebi.toStringEliminatingSpaces();
	}
	//Metódos da INTERFACE Gravavel
	public Gravavel getNovaInstancia()
	{
		return new Pessoa();
	}

    /**
     *
     * @return Tamanho do registo(sizeof).
     */
    public int getSizeof()
	{
		return (18 * 150) + 12;
	}


    /**
     *
     * @return Chave para calcular a posicao no ficheiro.
     */
    public Object getChave()
    {
		return getNome();
	}
	public void lerRegisto(RandomAccessFile stream) throws IOException
    {
        nome.read(stream);
        idade = stream.readInt();
		telefone = stream.readInt();
		localidade.read(stream);
		bairro.read(stream);
		registocriminal.read(stream);
		boletimsanidade.read(stream);
		estadocivil.read(stream);
		nomepai.read(stream);
		ocupacao.read(stream);
		nomemae.read(stream);
		numerocartaconducao = stream.readInt();
		tipocartaconducao.read(stream);
		local.read(stream);
		comuna.read(stream);
		municipio.read(stream);
		provincia.read(stream);
		numerobi.read(stream);
		dataemissaobi.read(stream);
		arquivoidentifacaobi.read(stream);
		datavalidadebi.read(stream);
    }
	public void gravarRegisto(RandomAccessFile stream) throws IOException
    {
		nome.write(stream);
        stream.writeInt(idade);
		stream.writeInt(telefone);
		localidade.write(stream);
		bairro.write(stream);
		registocriminal.write(stream);
		boletimsanidade.write(stream);
		estadocivil.write(stream);
		nomepai.write(stream);
		ocupacao.write(stream);
		nomemae.write(stream);
		stream.writeInt(numerocartaconducao);
		tipocartaconducao.read(stream);
		local.write(stream);
		comuna.write(stream);
		municipio.write(stream);
		provincia.write(stream);
		numerobi.write(stream);
		dataemissaobi.write(stream);
		arquivoidentifacaobi.write(stream);
		datavalidadebi.write(stream);
    }
	public void gravarRegistoVazio(RandomAccessFile stream) throws IOException 
    {
		/*this.nome = new StringBufferModelo(50);
		this.localidade = new StringBufferModelo(50);
		this.bairro = new StringBufferModelo(50);
		this.registocriminal = new StringBufferModelo(50);
		this.boletimsanidade = new StringBufferModelo(50);
		this.estadocivil = new StringBufferModelo(50);
        this.nomepai = new StringBufferModelo(50);
		this.nomemae = new StringBufferModelo(50);
		this.numerocartaconducao = numerocartaconducao;
		this.tipocartaconducao = new StringBufferModelo(50);
		this.local = new StringBufferModelo(50);
		this.comuna = new StringBufferModelo(50);
		this.municipio = new StringBufferModelo(50);
		this.provincia = new StringBufferModelo(50);
		this.numerobi = new StringBufferModelo(50);
		this.dataemissaobi = new StringBufferModelo(50);
		this.arquivoidentifacaobi = new StringBufferModelo(50);
		this.datavalidadebi = new StringBufferModelo(50);*/
		setNome("Vanilson");
		//setIdade();
		//setTelefone();
		setLocalidade("Luanda");
		setBairro("");
		setRegistocriminal("");
		setBoletimsanidade("");
		setEstadocivil("");
		setNomepai("");
		setOcupacaopai("");
		setNomemae("");
		//setNumerocartaconducao("");
		setTipocartaconducao("");
		setLocal("");
		setComuna("");
		setMunicipio("");
		setProvincia("");
		setDataemissaobi("");
		setArquivoidentifacaobi("");
		setDatavalidadebi("");
        
		nome.write(stream);
        stream.writeInt(20);
		stream.writeInt(921245345);
		localidade.write(stream);
		bairro.write(stream);
		registocriminal.write(stream);
		boletimsanidade.write(stream);
		estadocivil.write(stream);
		nomepai.write(stream);
		ocupacao.write(stream);
		nomemae.write(stream);
		stream.writeInt(-1);
		tipocartaconducao.write(stream);
		local.write(stream);
		comuna.write(stream);
		municipio.write(stream);
		provincia.write(stream);
		numerobi.write(stream);
		dataemissaobi.write(stream);
		arquivoidentifacaobi.write(stream);
		datavalidadebi.write(stream);
    }
    /**
     *
     * @param posicao Posicao onde sera lido o registo
     * @param stream
     * @throws Exception Disparada quando a leitua nao for executada com sucesso.
     */
}

Formulariopessoa.java

public void inserir()
	{
		Gravadorpessoa pessoa = new Gravadorpessoa();
		Pessoa modelo = new Pessoa();
		modelo.setNome(txtnome.getText().trim());
		modelo.setIdade(20);
		modelo.setTelefone(921245345);
		modelo.setLocalidade(txtlocalidadademorada.getText().trim());
		modelo.setBairro(txtbairromorada.getText().trim());
		modelo.setRegistocriminal(txtregistocriminal.getText().trim());
		modelo.setBoletimsanidade(txtboletimsanidade.getText().trim());
		modelo.setEstadocivil(txtestadocivil.getText().trim());
		modelo.setNomepai(txtnomepai.getText().trim());
		modelo.setOcupacaopai(txtocupacaopai.getText().trim());
		modelo.setNomemae(txtnomemae.getText().trim());
		modelo.setNumerocartaconducao(1);
		modelo.setNomepai(txtnomepai.getText().trim());
		modelo.setNomemae(txtnomemae.getText().trim());
		modelo.setTipocartaconducao("Ligeiro");
		modelo.setLocal(txtlocalnaturalidade.getText().trim());
		modelo.setComuna(txtcomunanaturalidade.getText().trim());
		modelo.setMunicipio("Maianga");
		modelo.setProvincia("Luanda");
		//modelo.setIdade(22);
		//modelo.setTelefone(921245345);
		try
		{
			boolean valida = pessoa.gravar( modelo );
			if(valida)
			{
				JOptionPane.showMessageDialog(null, "Candidato cadastrado com sucesso","Cadastro", JOptionPane.INFORMATION_MESSAGE);
			}
			else
			{
				JOptionPane.showMessageDialog(null, "Já existe um candidato com o mesmo codigo","Cadastro", JOptionPane.ERROR_MESSAGE);
			}
			}
			catch( IOException e )
			{
				JOptionPane.showMessageDialog(this, "Erro ao cadastrar o candidato","Cadastro", JOptionPane.ERROR_MESSAGE);
			}
	}
	public void visualizartodos()
	{
		String dados ="DADOS DA PESSOA\n\n";
		dados+= "Nome Completo : " + txtnome.getText() + "\n";
	}
	public void actionPerformed(ActionEvent evento)
	{
		if(evento.getSource() == salvar)
		{
			inserir();
			visualizartodos();
		}
	}
	public static void main(String args[])
	{
		new Formulariopessoa();
	}
}

Gravavel.java

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

package yb.hashtableyb;

import java.io.IOException;
import java.io.RandomAccessFile;

/**
 *
 * @author Yuri Bóbó
 */
public interface Gravavel
{

    
    

    public Gravavel getNovaInstancia();

    /**
     *
     * @return Tamanho do registo(sizeof).
     */
    public int getSizeof();


    /**
     *
     * @return Chave para calcular a posicao no ficheiro.
     */
    public Object getChave();


    /**
     *
     * @param posicao Posicao onde sera lido o registo
     * @param stream
     * @throws Exception Disparada quando a leitua nao for executada com sucesso.
     */
    public void lerRegisto(  RandomAccessFile stream ) throws IOException;


    /**
     *
     * @param posicao Posicao onde sera escrito o registo
     * @param stream
     * @throws Exception Disparada quando a escrita nao for executada com sucesso.
     */
    public void gravarRegisto(  RandomAccessFile stream ) throws IOException;


    public void gravarRegistoVazio( RandomAccessFile stream ) throws IOException;



}

GravadorgenericoHT.java

import yb.hashtableyb.GravadorGenericoHT;
public class Gravadorpessoa extends GravadorGenericoHT
{
    public Gravadorpessoa()
    {
        super("candidatos.dat", 8, new Pessoa());
    }
}
Vanilson

Cara, já resolvi o problema…valeu

Criado 14 de junho de 2010
Ultima resposta 15 de jun. de 2010
Respostas 3
Participantes 2