Problema Serializable

3 respostas
Tiago_Casanova
Estou tentando implementar o serializable mas nao estou conseguindo
public class Jogo extends JFrame {  
 
    ArrayList<Livro> lista =  new ArrayList();
    JTextField jt_nome;
    
    
   public Jogo() {  
      super("Cadastro de Livro");        
      setSize(480, 300);  
      
      setDefaultCloseOperation(EXIT_ON_CLOSE);  
      
     // getContentPane().setBackground(Color.BLACK);  
        
      
      setLayout(null);  
  
      
      JLabel lblTitulo = new JLabel("Cadastro de Livro");  
      
      lblTitulo.setFont(new Font("Comic Sans Ms", 1, 20));  
      
      lblTitulo.setBounds(140, 1, 3000, 100);  
      add(lblTitulo);  
        
      //Um botão que inicia o jogo  
      
      
      JLabel lb_nome = new JLabel("Nome");
      lb_nome.setBounds(30, 80, 70, 20);  
      add(lb_nome);
      
       jt_nome = new JTextField();
      jt_nome.setBounds(30, 100, 200, 30);  
      add(jt_nome);  
      
     JButton btnIniciar = new JButton("Cadastrar");  
      btnIniciar.setBounds(100, 200, 100, 30);   
       btnIniciar.addActionListener(new Action_btnIniciar());
      //Adicionando o botão ao Frame  
      add(btnIniciar);  
      
        
   }  
    public class Action_btnIniciar implements ActionListener {

      public void actionPerformed(ActionEvent e) {  //o erro acontece aqui
       FileOutputStream outFile = new FileOutputStream("text.txt");
       ObjectOutputStream serializer = new ObjectOutputStream(outFile);
       
         Livro livro = new Livro();
         livro.setNome(jt_nome.getText().toString());
         lista.add(livro);
         serializer.writeObject(lista);
 
      }
      }
     
   //Método main, aqui instanciamos a nossa classe, para testar!  
   public static void main(String[] args)  {  
    
      new Jogo().setVisible(true);  
   }
   
}
Alguém poderia me ajudar. Valeu

3 Respostas

drsmachado

Camarada, qual o erro?

Tiago_Casanova

Entao amigo, ele acusa erro, ao colocar o mouse em cima,

unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown

a minha idéia era fazer uma tela simples, cadastrando um vários livros.

ribclauport

Você não estava tratando as exceções!

import java.io.Serializable;


public class Livro implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -7936941614561038544L;
	private String nome;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
}
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

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

public class Jogo extends JFrame {

	ArrayList&lt;Livro&gt; lista = new ArrayList();
	JTextField jt_nome;

	public Jogo() {
		super("Cadastro de Livro");
		setSize(480, 300);

		setDefaultCloseOperation(EXIT_ON_CLOSE);

		// getContentPane().setBackground(Color.BLACK);

		setLayout(null);

		JLabel lblTitulo = new JLabel("Cadastro de Livro");

		lblTitulo.setFont(new Font("Comic Sans Ms", 1, 20));

		lblTitulo.setBounds(140, 1, 3000, 100);
		add(lblTitulo);

		// Um botão que inicia o jogo

		JLabel lb_nome = new JLabel("Nome");
		lb_nome.setBounds(30, 80, 70, 20);
		add(lb_nome);

		jt_nome = new JTextField();
		jt_nome.setBounds(30, 100, 200, 30);
		add(jt_nome);

		JButton btnIniciar = new JButton("Cadastrar");
		btnIniciar.setBounds(100, 200, 100, 30);
		btnIniciar.addActionListener(new Action_btnIniciar());
		// Adicionando o botão ao Frame
		add(btnIniciar);

	}

	public class Action_btnIniciar implements ActionListener {

		public void actionPerformed(ActionEvent e) { // o erro acontece aqui
			FileOutputStream outFile = null;
			try {
				outFile = new FileOutputStream("text.txt");
			} catch (FileNotFoundException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			ObjectOutputStream serializer = null;
			try {
				serializer = new ObjectOutputStream(outFile);
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}

			Livro livro = new Livro();
			livro.setNome(jt_nome.getText().toString());
			lista.add(livro);
			try {
				serializer.writeObject(lista);
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}

		}
	}

	// Método main, aqui instanciamos a nossa classe, para testar!
	public static void main(String[] args) {

		new Jogo().setVisible(true);
	}

}
Criado 7 de março de 2012
Ultima resposta 7 de mar. de 2012
Respostas 3
Participantes 3