[RESOLVIDO] Evento para Gravação em ArrayList

4 respostas
cle.darsie

Boa noite galera,

Estou ha quase 2 semanas batendo a cabeca com um codigo, q no comeco parecia facil, porem hj estou quase desistindo, mesmo estando tao perto de conseguir…

Eh o seguinte, Estou montando uma tela de cadastro de aluno.
Essa tela tem o Login, depois tem uma tela de Menu, onde vc escolhe o que vc quer fazer.

Fiz uma tela de cadastro (classe PanelCad), com o basico: Nome, CPF, End e etc… Criei um tratador de eventos pra essa tela (TratadorPanelCad)…
O que eu queria, eh que os dados digitados no JTextField fossem salvos em um ArrayList, que tambem ja tenho uma classe pra isso. Porem nao estou conseguindo fazer com que qdo eu clique no botao, ele salve o cadastro la.

Depois de conseguir salvar o cadastro no ArrayList, quero gravar isso em um arquivo .txt… Fiz um codigozinho ali, ele grava alguma coisa, mas nao sei se eh o cadastro, pq nao consigo salvar ele…

Vou postar aqui as classes que eu estou tendo problemas, gostaria q voces pudessem me ajudar. Deve ser algo tao simples, e nao to conseguindo.

PanelCad - Onde esta a tela de cadastro

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JComboBox;

class PanelCad extends JFrame implements ActionListener{

	private JLabel jlNome, jlCpf, jlTel, jlEnd, jlBairro, jlCid, jlUF, jlCep, jlSexo, jLabel1;
	private JTextField jtfNome, jtfCpf, jtfTel, jtfEnd, jtfBairro, jtfCid, jtfUF, jtfCep, tField;
	private PanelCurso pCur;
	private PanelMenu pMenu;
	private JButton bGravar, bLimpar, bSair, bVoltar, bSalvarCad;
	private JPanel panelMain, panel1, panel2, panel3, panel4;
	private JComboBox box;
	private TratadorPanelCad tratador;
	
	public PanelCad() {
		
		// Barra de status
		jLabel1 = new JLabel("Status: ");
		jLabel1.setForeground(Color.black);

		// Botões
		bGravar = new JButton("Gravar");
		bLimpar = new JButton("Limpar");
		bSair = new JButton("Sair");
		bVoltar = new JButton("Voltar");
		bSalvarCad = new JButton("Salvar");
		tratador = new TratadorPanelCad(bLimpar, bSalvarCad, bGravar, bSair);
		
		tField = new JTextField(15);
		tField.setForeground(Color.red);
		tField.setEditable(false);

		pMenu = new PanelMenu();
		panelMain = new JPanel(new FlowLayout());
		panel1 = new JPanel(new GridLayout(9, 1, 10, 5));
		panel2 = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 30));
		panel3 = new JPanel(new GridLayout(1, 4, 10, 10));
		panel4 = new JPanel(new GridLayout(2, 2, 10, 10));

		jlNome = new JLabel("Nome");		panel1.add(jlNome);
		jtfNome = new JTextField(12);		panel1.add(jtfNome);
		jlCpf = new JLabel("CPF");			panel1.add(jlCpf);
		jtfCpf = new JTextField(12);		panel1.add(jtfCpf);
		jlTel = new JLabel("Tel");			panel1.add(jlTel);
		jtfTel = new JTextField(12);		panel1.add(jtfTel);
		jlEnd = new JLabel("Endereço");		panel1.add(jlEnd);
		jtfEnd = new JTextField(12);		panel1.add(jtfEnd);
		jlBairro = new JLabel("Bairro");	panel1.add(jlBairro);
		jtfBairro = new JTextField(10);		panel1.add(jtfBairro);
		jlCid = new JLabel("Cidade");		panel1.add(jlCid);
		jtfCid = new JTextField(10);		panel1.add(jtfCid);
		jlUF = new JLabel("UF");			panel1.add(jlUF);
		jtfUF = new JTextField(5);			panel1.add(jtfUF);
		jlCep = new JLabel("CEP");			panel1.add(jlCep);
		jtfCep = new JTextField(10);		panel1.add(jtfCep);
		jlSexo = new JLabel("Sexo");		panel1.add(jlSexo);

		box = new JComboBox();
		box.addItem("Escolha");
		box.addItem("Masculino");
		box.addItem("Feminino");
		panel1.add(box);

		pCur = new PanelCurso();
		panel2.add(pCur);
		
		bVoltar.addActionListener(this);
		bLimpar.addActionListener(tratador);
		bSalvarCad.addActionListener(tratador);
		bGravar.addActionListener(tratador);
		bSair.addActionListener(tratador);

		panel3.add(bLimpar);
		panel3.add(bSalvarCad);
		panel3.add(bVoltar);

		panel4.add(jLabel1);
		panel4.add(tField);
		panel4.add(bGravar);
		panel4.add(bSair);

		panelMain.add(pMenu);
		panelMain.add(panel1);
		panelMain.add(panel2);
		panelMain.add(panel3);
		panelMain.add(panel4);

		setContentPane(panelMain);
		setTitle("CADASTRAR ALUNO");
		setSize(400, 650);
		setResizable(false);
		setBackground(new Color(0, 0, 0, 1));
		setLocationRelativeTo(null);
		setVisible(true);
	}
	
	public void actionPerformed(ActionEvent e) {
		if (bVoltar == e.getSource()){
			super.setVisible(false);
		}
	}
	
	public JTextField getNome() {
		return jtfNome;
	}	
	public void setNome(JTextField nome){
		jtfNome = nome;
	}
	
	public JTextField getCpf() {
		return jtfCpf;
	}	
	public void setCpf(JTextField cpf){
		jtfCpf = cpf;
	}
	
	public JTextField getTel() {
		return jtfTel;
	}
	public void setTel(JTextField tel){
		jtfTel = tel;
	}
	
	public JTextField getEnd() {
		return jtfEnd;
	}
	public void setEnd(JTextField end){
		jtfEnd = end;
	}
	
	public JTextField getBairro() {
		return jtfBairro;
	}	
	public void setBairro(JTextField bairro){
		jtfBairro = bairro;
	}
	
	public JTextField getCid() {
		return jtfCid;
	}	
	public void setCid(JTextField cid){
		jtfCid = cid;
	}
	
	public JTextField getUf() {
		return jtfUF;
	}	
	public void setUf(JTextField uf){
		jtfUF = uf;
	}
	
	public JTextField getCep() {
		return jtfCep;
	}
	public void setCep(JTextField cep){
		jtfCep = cep;
	}
	
	public void setTfield(JTextField tField){
		this.tField = tField;
	}
}

TratadorPanelCad - Responsavel pelos eventos do PanelCad

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

import javax.swing.JButton;
import javax.swing.JFileChooser;

public class TratadorPanelCad extends MouseAdapter implements ActionListener {
	private JButton clean, save, rec, exit;
	private CadAluno cadastro;
	
	public TratadorPanelCad(JButton bLimpar, JButton bSalvarCad, 
		   JButton bGravar, JButton bSair){
		
		clean = bLimpar;
		save = bSalvarCad;
		rec = bGravar;
		exit = bSair;	
		cadastro = new CadAluno();
	}
	
	public void actionPerformed(ActionEvent e) {
		
		if (clean == e.getSource()) { // Limpa os todos os campos da tela de cadastro
			System.out.println("limpando");
			/*
			setar.setNome(setText(""));
			setar.setCpf(setText(""));
			setar.setTel(setText(""));
			setar.setEnd(setText(""));
			setar.setBairro(setText(""));
			setar.setCid(setText(""));
			setar.setUf(setText(""));
			setar.setCep(setText(""));*/
		}	
		
		if (save == e.getSource()) { // Salva o cadastro em ArrayList
			try {
				cadastro.adicionarAluno();
				System.out.println("salvando cadastro");
			} catch (IOException e1){
				e1.printStackTrace();
			}
		}
		
		if (rec == e.getSource()) {
			JFileChooser arquivo = new JFileChooser();  
	        arquivo.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);  
	        //arquivo.setFileFilter(new filtro());  
	  
	        int result = arquivo.showSaveDialog(rec);  
	        if (result == JFileChooser.CANCEL_OPTION) {  
	           arquivo.cancelSelection();  
	        }else{  
	            try {  
	                ObjectOutputStream objsaida;                  
	                File nome = arquivo.getSelectedFile();  
	                //insere a extensão .txt no arquivo  
	                FileOutputStream fsaida = new FileOutputStream(nome + ".txt");  
	                objsaida = new ObjectOutputStream(fsaida);  
	                //grava o objeto getCadAlunos()  
	                objsaida.writeObject(cadastro.getCadAlunos());  
	                fsaida.close();  
	                objsaida.close();                  
	            }  
	            catch(IOException ex){  
	            	System.out.println("Erro: " + ex.getMessage());  
	            }  
	        }
		}
		
		if (exit == e.getSource()) {
			System.exit(0); // Sai do sistema
		}	
	}
}

CadAluno - Onde fica o codigo

import java.io.IOException;
import java.util.ArrayList;

public class CadAluno {
	
	ArrayList<Aluno> alunos = new ArrayList<Aluno>();

	public boolean adicionar(Aluno a) throws IOException {
		return alunos.add(a);
	}

	public boolean remover(String nome) {
		Aluno alunoRemove = new Aluno();
		alunoRemove.setNome(nome);
		return alunos.remove(alunoRemove);
	}

	public Aluno buscarPorNome(String nome) {
		for (Aluno busca : alunos) {
			if (busca.getNome().equalsIgnoreCase(nome))
			{
				return busca;
			}
		}
		return null;
	}

	public int quantidade() {
		return this.alunos.size();
	}

	public boolean cadastrado(String nome) {
		Aluno verificar = new Aluno();
		verificar.setNome(nome);
		return alunos.contains(verificar);
	}

	public ArrayList<Aluno> getCadAlunos() {
		return this.alunos;
	}
}

Aluno - Dados dos Alunos

public class Aluno {

	private String nome;
	private String cpf;
	private String telefone;
	private String endereco;
	private String bairro;
	private String cidade;
	private String uf;
	private String cep;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	
	public String getTel() {
		return telefone;
	}
	public void setTel(String telefone) {
		this.telefone = telefone;
	}
	
	public String getEnd() {
		return endereco;
	}
	public void setEnd(String endereco) {
		this.endereco = endereco;
	}

	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	
	public String getCid() {
		return cidade;
	}
	public void setCid(String cidade) {
		this.cidade = cidade;
	}
	
	public String getUf() {
		return uf;
	}
	public void setUf(String uf) {
		this.uf = uf;
	}
	
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}

	public boolean equals(Object obj) {

		if (((Aluno) obj).getNome().equalsIgnoreCase(this.nome))
			return true;
		return super.equals(obj);
	}
}

PanelCurso - So os JRadioButtons

import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import java.awt.GridLayout;

public class PanelCurso extends JPanel{
	private JRadioButton jrbCC, jrbSI, jrbBD, jrbRC, jrbAS, jrbAdm, jrbEng, jrbCCont;
	private ButtonGroup jrbGroup;

	public PanelCurso(){

		jrbGroup = new ButtonGroup();
		jrbCC = new JRadioButton("Ciencia da Computação");
		jrbSI = new JRadioButton("Sistemas de Informação");
		jrbBD = new JRadioButton("Banco de Dados");
		jrbRC = new JRadioButton("Redes de Computadores");
		jrbAS = new JRadioButton("Analise de Sistemas");
		jrbAdm = new JRadioButton("Administracao");
		jrbEng = new JRadioButton("Engenharia");
		jrbCCont = new JRadioButton("Ciencias Contabeis");

		add(jrbCC);				add(jrbSI);
		add(jrbRC);				add(jrbBD);
		add(jrbAS);				add(jrbAdm);
		add(jrbEng);			add(jrbCCont);

		jrbGroup.add(jrbCC);	jrbGroup.add(jrbSI);
		jrbGroup.add(jrbBD);	jrbGroup.add(jrbRC);
		jrbGroup.add(jrbAS);	jrbGroup.add(jrbAdm);
		jrbGroup.add(jrbEng);	jrbGroup.add(jrbCCont);

		setLayout(new GridLayout(0,2));
	}
}

PanelMenu - Menu (so pra aparecer alguma coisa, nao serve pra nada)

import javax.swing.JPanel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class PanelMenu extends JPanel{
	private	JMenuBar menubar;
	private JMenu arquivo, editar, ajuda;
	private JMenuItem novo, consultar, salvar, sair, undo, opcoes, versao, sobre;
	
	public PanelMenu(){

		menubar = new JMenuBar();
				
		// Menu Arquivo
		arquivo = new JMenu("Arquivo");
		novo = new JMenuItem("Novo");
		consultar = new JMenuItem("Consultar");
		salvar = new JMenuItem("Salvar");
		sair = new JMenuItem("Sair");

		menubar.add(arquivo);
    	arquivo.add(novo);
    	arquivo.add(consultar);
    	arquivo.add(salvar);
    	arquivo.add(sair);

		// Menu Configurações
		editar = new JMenu("Editar");
		undo = new JMenuItem("Desfazer    - crtl+z");
		opcoes = new JMenuItem("Opções");

		menubar.add(editar);
    	editar.add(undo);
    	editar.add(opcoes);

		// Menu Ajuda
		ajuda = new JMenu("Ajuda");
		versao = new JMenuItem("Versao");
		sobre  = new JMenuItem("Sobre");

		add(menubar);
		menubar.add(ajuda);
    	ajuda.add(sobre);
    	ajuda.add(versao);

  		class sair implements ActionListener{
			public void actionPerformed (ActionEvent e){
				System.exit(0);
			}
		}
		sair.addActionListener(new sair());
		
		setLayout(new FlowLayout());
	}
}

Menu - Onde escolho o que quero fazer no programa

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.GridLayout;
import java.awt.FlowLayout;
import javax.swing.*;

public class Menu extends JFrame{
	private JButton bAdd, bDelet, bBusca, bLista, bQtd, bSair;
	private JPanel panel;
	private TratadorMenu tratador;

	public Menu() {
		bAdd 	 = new JButton("ADICIONAR ALUNO");
		bDelet 	 = new JButton("REMOVER ALUNO");
		bBusca 	 = new JButton("BUSCAR ALUNO");
		bLista 	 = new JButton("LISTAR ALUNOS");
		bQtd	 = new JButton("QUANTIDADE DE ALUNOS");
		bSair 	 = new JButton("SAIR");
		panel	 = new JPanel(new GridLayout(6, 1, 0, 20));
		tratador = new TratadorMenu(bAdd, bDelet, bBusca, bLista, bQtd, bSair);
		
		panel.add(bAdd);
		panel.add(bDelet);
		panel.add(bBusca);
		panel.add(bLista);
		panel.add(bQtd);
		panel.add(bSair);
		add(panel);
		
		bAdd.addActionListener(tratador);
		bDelet.addActionListener(tratador);
		bBusca.addActionListener(tratador);
		bLista.addActionListener(tratador);
		bQtd.addActionListener(tratador);
		bSair.addActionListener(tratador);
		
		setTitle("MENU DE OPCOES");
		setSize(400, 350);
		setLayout(new FlowLayout(FlowLayout.CENTER,0,30));
		setLocationRelativeTo(null);
		setVisible(true);
	}
}

TratadorMenu - Trata o evento dos menus

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;

public class TratadorMenu implements ActionListener {
	private JButton add, del, bus, lis, qtd, sai;
	
	public TratadorMenu(JButton bAdd, JButton bDelet, JButton bBusca, 
		   JButton bLista, JButton bQtd, JButton bSair){
		
		add = bAdd;
		del = bDelet;
		bus = bBusca;
		lis = bLista;
		qtd = bQtd;
		sai = bSair;
	}
	
	public void actionPerformed(ActionEvent e) {
		
		if (add == e.getSource()) {
			// falta evento pra fechar janela de menu
			new PanelCad().setVisible(true); // Abre PanelCad
		}
		if (del == e.getSource()) {
			// falta evento pra fechar janela de menu
			new Menu().setVisible(true); // Abre Deletar Aluno
		}
		if (bus == e.getSource()) {
			// falta evento pra fechar janela de menu
			new Menu().setVisible(true); // Abre Buscar Aluno
		}
		if (lis == e.getSource()) {
			// falta evento pra fechar janela de menu
			new ListarAlunos().setVisible(true); // Lista todos os Alunos
		}
		if (qtd == e.getSource()) {
			// falta evento pra fechar janela de menu
			new MostraQuantidade(); // Mostra a quantidade de alunos cadastrados
		}
		if (sai == e.getSource()) {
			System.exit(0); // Sai do sistema
		}	
	}
}

Login - a senha eh 123abc

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

public class Login extends JFrame implements ActionListener {

	private JPasswordField edCod;
	private JLabel lbCod;
	private JButton btSend;
	private String sCodAcess;
	private JPanel panel;

	public Login() {
		
		edCod = new JPasswordField(10);
		lbCod = new JLabel("Password");
		btSend = new JButton(">OK<");
		sCodAcess = new String("123abc");
		panel = new JPanel(new FlowLayout());

		panel.add(lbCod);
		panel.add(edCod);
		panel.add(btSend);
		add(panel);
		
		setTitle("LOGIN");
		setLayout(new FlowLayout(FlowLayout.CENTER,0,125));
		setSize(400, 350);
		setLocationRelativeTo(null);
		setVisible(true);
		
		btSend.addActionListener(this);
	}
	
	public boolean ValidaCod(String sCod) {
		if (sCod.equalsIgnoreCase(sCodAcess)) {
			return true;
		} else
			return false;
	}

	public void actionPerformed(ActionEvent evento) {
		Object evt = evento.getSource();
		if (evt == btSend) {
			if (ValidaCod(edCod.getText())) {
				super.setVisible(false);
				new Menu().setVisible(true); // Abre o Menu de opções
			}
		}
	}
}

Main

import javax.swing.JFrame;

public class CadMain {
	public static void main(String args[]) {
		JFrame.setDefaultLookAndFeelDecorated(true);

		new Login().setVisible(true);
	}
}

Bom, ta tudo ai galera, se alguem conseguir me ajudar a gravar, ficarei mto feliz, soh falta isso…

Boa noite e obrigado a todos que puderem colaborar.

4 Respostas

R

para salvar objetos em arquivo, utilize Serializable. É uma boa ideia salvar a coleção de alunos, sem que seja aluno por aluno.
A classe Aluno

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.List;

public class Aluno implements Serializable{
  private String nome;
  private String bairro;

  public String getNome(){return nome;}
  public void setNome(String nome){this.nome=nome;}
  public String getBairro(){return bairro;}
  public void setBairro(String bairro){this.bairro=bairro;}
  
  public static Aluno create(String nome,String bairro){
    Aluno aluno=new Aluno();
    
    aluno.nome=nome;
    aluno.bairro=bairro;
    return aluno;
  }
  
  public static void salva(List<Aluno>alunos,String arquivo)throws Exception{
    ByteArrayOutputStream stream=new ByteArrayOutputStream();
    ObjectOutputStream out=new ObjectOutputStream(stream);

    out.writeObject(alunos);
    out.flush();
    out.close();

    FileOutputStream f=new FileOutputStream(arquivo);

    f.write(stream.toByteArray());
    f.flush();
    f.close();
  }
  
  public static List<Aluno>carrega(String arquivo)throws Exception{
    
    ObjectInputStream in=new ObjectInputStream(new FileInputStream(arquivo));
    return (List<Aluno>)in.readObject();
  }
}

O teste
O teste criar muitos alunos todos em um array. Dai salva em arquivo. Depois le o arquivo e para cada um da coleção exibe o nome.

import java.util.ArrayList;
import java.util.List;

public class Teste{
  public static void main(String[]item) throws Exception{
    List<Aluno>alunos=new ArrayList<Aluno>();
    
    alunos.add(Aluno.create("nome 1","bairro 1"));
    alunos.add(Aluno.create("nome 2","bairro 2"));
    alunos.add(Aluno.create("nome 3","bairro 3"));
    alunos.add(Aluno.create("nome 4","bairro 4"));
    alunos.add(Aluno.create("nome 5","bairro 5"));
    alunos.add(Aluno.create("nome 6","bairro 6"));
    
    Aluno.salva(alunos,"/tmp/alunos.txt");
    
    for(Aluno aluno:Aluno.carrega("/tmp/alunos.txt"))
      System.out.println(aluno.getNome());
  }
}
cle.darsie

Ola rwolosker…

Obrigado pela atencao…
Isso que voce fez, eu tbm ja tinha feito, mas de modo diferente.
Porem nao eh assim que eu to querendo.

Eu uso JTextField’s pra setar os campos, porem eu to tendo problemas com os eventos que utilizarei pra salvar o cadastro e depois gravar o cadastro salvo em um arquivo.

Tentei usar o que vc fez de alguma forma, mas nao consegui, pq foge do que eu quero.

Mas obrigado mesmo assim, e se conseguir me ajudar mais eu agradeco muito!

cle.darsie

E ai pessoal,

Seguinte... Consegui terminar quase todo o código, porém está dando apenas um erro agora..
Quando eu dou um clique em "salvar" que é meu botão para guardar os dados do JTextField em um ArrayList, ele da o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at com.br.sysmap.cadaluno.TratadorPanelCad.actionPerformed(TratadorPanelCad.java:46)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6289)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6054)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4652)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4482)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4482)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
	at java.awt.EventQueue.access$000(EventQueue.java:85)
	at java.awt.EventQueue$1.run(EventQueue.java:603)
	at java.awt.EventQueue$1.run(EventQueue.java:601)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:617)
	at java.awt.EventQueue$2.run(EventQueue.java:615)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Já vi em outros tópicos que isso poderia ser alguma variável que está null, mas todas elas estão corretas (ao meu ver)..
Vou postar aqui o código da classe que está dando o erro.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

import javax.swing.JButton;
import javax.swing.JFileChooser;

public class TratadorPanelCad implements ActionListener {
	private PanelCad setar;
	private JButton clean, save, rec, exit;
	private CadAluno cadastro;
	private Aluno a;

	public TratadorPanelCad(JButton bLimpar, JButton bSalvarCad,
			JButton bGravar, JButton bSair, PanelCad setar1) {

		clean = bLimpar;
		save = bSalvarCad;
		rec = bGravar;
		exit = bSair;
		setar = setar1;
	}

	public void actionPerformed(ActionEvent e) {

		if (clean == e.getSource()) { // Limpa os todos os campos da tela de cadastro
			setar.setNome("");
			setar.setCpf("");
			setar.setTel("");
			setar.setEnd("");
			setar.setBairro("");
			setar.setCid("");
			setar.setUf("");
			setar.setCep("");
		}

		if (save == e.getSource()) { // Salva o cadastro em ArrayList
			try {
				a.setNome(setar.getNome().getText());  // O erro acontece aqui. Mas não sei por que.
				a.setCpf(setar.getCpf().getText());
				a.setTel(setar.getTel().getText());
				a.setEnd(setar.getEnd().getText());
				a.setBairro(setar.getBairro().getText());
				a.setCid(setar.getCid().getText());
				a.setUf(setar.getUf().getText());
				a.setCep(setar.getCep().getText());
	
				cadastro.adicionar(a);
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			System.out.println("Aluno adicionado com sucesso!");
		}

		if (rec == e.getSource()) {
			JFileChooser arquivo = new JFileChooser();
			arquivo.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

			int result = arquivo.showSaveDialog(rec);
			if (result == JFileChooser.CANCEL_OPTION) {
				arquivo.cancelSelection();
			} else {
				try {
					ObjectOutputStream objsaida;
					File nome = arquivo.getSelectedFile();

					// insere a extensão .txt no arquivo
					FileOutputStream fsaida = new FileOutputStream(nome
							+ ".txt");
					objsaida = new ObjectOutputStream(fsaida);

					// grava o objeto de getCadAlunos()
					objsaida.writeObject(cadastro.getCadAlunos());
					fsaida.close();
					objsaida.close();
				} catch (IOException ex) {
					System.out.println("Erro: " + ex.getMessage());
				}
			}
		}

		if (exit == e.getSource()) {
			System.exit(0); // Sai do sistema
		}
	}
}

Será que alguém sabe por que?

cle.darsie

Resolvi o problema galera…
Ninguém aqui conseguiu me ajudar, então tentei sozinho e consegui.

Criado 30 de março de 2011
Ultima resposta 3 de abr. de 2011
Respostas 4
Participantes 2