Projeto limpo

7 respostas
guisantogui

Galera to fazendo um projeto aqui e tenho q salvar um aquivo com uma lista, mas na hora que eu vou salvar o projeto a minha interface que guarda a instancia da classe q tem a lista ele não salva a lista certa!

tipo, pensei em colocar os metodos que salvam esse arquivo dentro da GUI q salva o Objeto na lista dae naum ia ter erro, mas me pareceu meio gambiarrado, o que vcs axam?

vlw!

7 Respostas

Hebertbc

POG com certeza… :smiley:
Eu mesmo trabalho com um sistema feito com tecnologia POG faz mais de 1 ano, depois aprendi que ele pode ate funcionar o detalhe esta na hora de fazer uma atualização, vc ve as besteiras que fez… mas fazer o que c’est la vie

Posta os codigos ae que vemos o que ta acontecendo.

guisantogui

Classe que adiciona nova pessoa

package Interface;

import Classes.CadastroDePessoas;
import Classes.GerenciaTabelas;
import Classes.Pessoa;
import Classes.PlainDocument;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.text.MaskFormatter;

public class JanelaAdicionarNovo extends javax.swing.JFrame {

    private CadastroDePessoas cadastroDePessoas = new CadastroDePessoas();
    
    GerenciaTabelas gerenciaTabelas = new GerenciaTabelas();
    
    private static JanelaAdicionarNovo instancia = new JanelaAdicionarNovo();

    public JanelaAdicionarNovo() {
        initComponents();
        this.setTitle("Adicionar Registro");
        txtUF.setText("RS");
        txtCidade.setText("Porto Alegre");
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.setBounds(20, 20, 1024, 768);
        
        txtFormatDataOrigem.setVisible(false);
        lblDataOrigem.setVisible(false);
        lblDataSemEspacos.setVisible(false);

        
        MaskFormatter mascaraCpf = null;
        try {
            mascaraCpf = new MaskFormatter("###.###.###-##");
        } catch (ParseException pe) {
            pe.printStackTrace();
        }
        mascaraCpf.setPlaceholderCharacter('_');
        mascaraCpf.setValidCharacters("[telefone removido]");
        mascaraCpf.install(txtFormatCpf);


        MaskFormatter mascaraCnpj = null;
        try{
            mascaraCnpj = new MaskFormatter("##.###.###/####-##");
        }
        catch(ParseException pe){
            pe.printStackTrace();
        }
        mascaraCnpj.setPlaceholderCharacter('_');
        mascaraCnpj.setValidCharacters("[telefone removido]");
        mascaraCnpj.install(txtFormatCnpj);


        MaskFormatter mascaraData = null;
        try {
            mascaraData = new MaskFormatter("##/##/####");
        } catch (ParseException pe) {
            pe.printStackTrace();
        }
        mascaraData.setPlaceholderCharacter('_');
        mascaraData.setValidCharacters("[telefone removido]");
        mascaraData.install(txtFormatDataOrigem);

        
        MaskFormatter mascaraCep = null;
        try {
            mascaraCep = new MaskFormatter("#####-###");
        }
        catch (ParseException pe) {
            pe.printStackTrace();
        }
        mascaraCep.setPlaceholderCharacter('_');
        mascaraCep.setValidCharacters("[telefone removido]");
        mascaraCep.install(txtFormatCep);
    }
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        GrupoBotoesJAdd = new javax.swing.ButtonGroup();
        painel = new javax.swing.JLayeredPane();
        opcCnpj = new javax.swing.JRadioButton();
        opcCpf = new javax.swing.JRadioButton();
        btnAdicionar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        txtCidade = new javax.swing.JTextField();
        txtHomePage = new javax.swing.JTextField();
        txtEmailGeral = new javax.swing.JTextField();
        txtFax = new javax.swing.JTextField();
        txtTelefone = new javax.swing.JTextField();
        txtUF = new javax.swing.JTextField();
        txtBairro = new javax.swing.JTextField();
        txtEndereco = new javax.swing.JTextField();
        txtApelido = new javax.swing.JTextField();
        txtNome = new javax.swing.JTextField();
        lblAlerta1 = new javax.swing.JLabel();
        lblCpf = new javax.swing.JLabel();
        lblCnpj = new javax.swing.JLabel();
        lblDataSemEspacos = new javax.swing.JLabel();
        lblDataOrigem = new javax.swing.JLabel();
        lblEmailGeral = new javax.swing.JLabel();
        lblHomePage = new javax.swing.JLabel();
        lblFax = new javax.swing.JLabel();
        lblTelefone = new javax.swing.JLabel();
        lblUf = new javax.swing.JLabel();
        lblCep = new javax.swing.JLabel();
        lblNome = new javax.swing.JLabel();
        lblApelido = new javax.swing.JLabel();
        lblEndereco = new javax.swing.JLabel();
        lblBairro = new javax.swing.JLabel();
        lblCidade = new javax.swing.JLabel();
        lblFundo = new javax.swing.JLabel();
        txtFormatDataOrigem = new javax.swing.JFormattedTextField();
        txtFormatCep = new javax.swing.JFormattedTextField();
        txtFormatCpf = new javax.swing.JFormattedTextField();
        txtFormatCnpj = new javax.swing.JFormattedTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("Adicionar Registro");
        setMinimumSize(new java.awt.Dimension(832, 500));
        setResizable(false);

        GrupoBotoesJAdd.add(opcCnpj);
        opcCnpj.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                opcCnpjActionPerformed(evt);
            }
        });
        opcCnpj.setBounds(740, 610, 21, 21);
        painel.add(opcCnpj, javax.swing.JLayeredPane.PALETTE_LAYER);

        GrupoBotoesJAdd.add(opcCpf);
        opcCpf.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                opcCpfActionPerformed(evt);
            }
        });
        opcCpf.setBounds(740, 580, 21, 21);
        painel.add(opcCpf, javax.swing.JLayeredPane.PALETTE_LAYER);

        btnAdicionar.setText("Adicionar");
        btnAdicionar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAdicionarActionPerformed(evt);
            }
        });
        btnAdicionar.setBounds(340, 650, 100, 23);
        painel.add(btnAdicionar, javax.swing.JLayeredPane.PALETTE_LAYER);

        btnCancelar.setText("Cancelar");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });
        btnCancelar.setBounds(470, 650, 100, 23);
        painel.add(btnCancelar, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtCidade.setFont(new java.awt.Font("Verdana", 0, 12));
        txtCidade.setText("Porto Alegre");
        txtCidade.setDocument(new PlainDocument(40, "."));
        txtCidade.setBounds(140, 380, 390, 22);
        painel.add(txtCidade, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtHomePage.setFont(new java.awt.Font("Verdana", 0, 12));
        txtHomePage.setDocument(new PlainDocument(30, "."));
        txtHomePage.setBounds(140, 540, 620, 20);
        painel.add(txtHomePage, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtEmailGeral.setFont(new java.awt.Font("Verdana", 0, 12));
        txtEmailGeral.setDocument(new PlainDocument(50, "."));
        txtEmailGeral.setBounds(140, 500, 620, 22);
        painel.add(txtEmailGeral, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtFax.setFont(new java.awt.Font("Verdana", 0, 12));
        txtFax.setDocument(new PlainDocument(30, "."));
        txtFax.setBounds(140, 460, 620, 22);
        painel.add(txtFax, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtTelefone.setFont(new java.awt.Font("Verdana", 0, 12));
        txtTelefone.setDocument(new PlainDocument(65, "."));
        txtTelefone.setBounds(140, 420, 620, 22);
        painel.add(txtTelefone, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtUF.setFont(new java.awt.Font("Verdana", 0, 12));
        txtUF.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtUF.setText("RS");
        txtUF.setDocument(new PlainDocument());
        txtUF.setBounds(570, 380, 31, 22);
        painel.add(txtUF, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtBairro.setFont(new java.awt.Font("Verdana", 0, 12));
        txtBairro.setDocument(new PlainDocument(35, "."));
        txtBairro.setBounds(140, 340, 620, 22);
        painel.add(txtBairro, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtEndereco.setFont(new java.awt.Font("Verdana", 0, 12));
        txtEndereco.setDocument(new PlainDocument(50, "."));
        txtEndereco.setBounds(140, 300, 620, 22);
        painel.add(txtEndereco, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtApelido.setFont(new java.awt.Font("Verdana", 0, 12)); // NOI18N
        txtApelido.setDocument(new PlainDocument(35, "."));
        txtApelido.setBounds(140, 260, 620, 22);
        painel.add(txtApelido, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtNome.setFont(new java.awt.Font("Verdana", 0, 12)); // NOI18N
        txtNome.setDocument(new PlainDocument(45, "."));
        txtNome.setBounds(140, 220, 620, 20);
        painel.add(txtNome, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblAlerta1.setFont(new java.awt.Font("Verdana", 0, 9));
        lblAlerta1.setForeground(java.awt.Color.yellow);
        lblAlerta1.setText("O Campo \"Nome\" deve ser Preenchido (*)");
        lblAlerta1.setBounds(50, 690, 230, 11);
        painel.add(lblAlerta1, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblCpf.setFont(new java.awt.Font("Verdana", 1, 12));
        lblCpf.setForeground(new java.awt.Color(255, 255, 255));
        lblCpf.setText("CPF");
        lblCpf.setBounds(540, 580, 50, 16);
        painel.add(lblCpf, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblCnpj.setFont(new java.awt.Font("Verdana", 1, 12));
        lblCnpj.setForeground(new java.awt.Color(255, 255, 255));
        lblCnpj.setText("CNPJ");
        lblCnpj.setBounds(540, 610, 50, 16);
        painel.add(lblCnpj, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblDataSemEspacos.setFont(new java.awt.Font("Verdana", 0, 9));
        lblDataSemEspacos.setForeground(java.awt.Color.yellow);
        lblDataSemEspacos.setText("Digite a data no formato: DD/MM/AAAA");
        lblDataSemEspacos.setBounds(50, 610, 250, 11);
        painel.add(lblDataSemEspacos, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblDataOrigem.setFont(new java.awt.Font("Verdana", 1, 12));
        lblDataOrigem.setForeground(new java.awt.Color(255, 255, 255));
        lblDataOrigem.setText("Data de Nascimento / Fundação");
        lblDataOrigem.setBounds(50, 580, 230, 16);
        painel.add(lblDataOrigem, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblEmailGeral.setFont(new java.awt.Font("Verdana", 1, 12));
        lblEmailGeral.setForeground(new java.awt.Color(255, 255, 255));
        lblEmailGeral.setText("E-mail");
        lblEmailGeral.setBounds(50, 500, 90, 16);
        painel.add(lblEmailGeral, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblHomePage.setFont(new java.awt.Font("Verdana", 1, 12));
        lblHomePage.setForeground(new java.awt.Color(255, 255, 255));
        lblHomePage.setText("Home page");
        lblHomePage.setBounds(50, 540, 90, 16);
        painel.add(lblHomePage, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblFax.setFont(new java.awt.Font("Verdana", 1, 12));
        lblFax.setForeground(new java.awt.Color(255, 255, 255));
        lblFax.setText("FAX");
        lblFax.setBounds(50, 460, 30, 16);
        painel.add(lblFax, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblTelefone.setFont(new java.awt.Font("Verdana", 1, 12));
        lblTelefone.setForeground(new java.awt.Color(255, 255, 255));
        lblTelefone.setText("Telefone");
        lblTelefone.setBounds(50, 420, 80, 16);
        painel.add(lblTelefone, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblUf.setFont(new java.awt.Font("Verdana", 1, 12));
        lblUf.setForeground(new java.awt.Color(255, 255, 255));
        lblUf.setText("UF");
        lblUf.setBounds(540, 380, 34, 20);
        painel.add(lblUf, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblCep.setFont(new java.awt.Font("Verdana", 1, 12));
        lblCep.setForeground(new java.awt.Color(255, 255, 255));
        lblCep.setText("CEP");
        lblCep.setBounds(620, 380, 30, 20);
        painel.add(lblCep, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblNome.setFont(new java.awt.Font("Verdana", 1, 12));
        lblNome.setForeground(new java.awt.Color(255, 255, 255));
        lblNome.setText("Nome *");
        lblNome.setBounds(50, 220, 60, 16);
        painel.add(lblNome, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblApelido.setFont(new java.awt.Font("Verdana", 1, 12));
        lblApelido.setForeground(new java.awt.Color(255, 255, 255));
        lblApelido.setText("Apelido");
        lblApelido.setBounds(50, 260, 60, 16);
        painel.add(lblApelido, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblEndereco.setFont(new java.awt.Font("Verdana", 1, 12));
        lblEndereco.setForeground(new java.awt.Color(255, 255, 255));
        lblEndereco.setText("Endereço");
        lblEndereco.setBounds(50, 300, 80, 16);
        painel.add(lblEndereco, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblBairro.setFont(new java.awt.Font("Verdana", 1, 12));
        lblBairro.setForeground(new java.awt.Color(255, 255, 255));
        lblBairro.setText("Bairro");
        lblBairro.setBounds(50, 340, 70, 16);
        painel.add(lblBairro, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblCidade.setFont(new java.awt.Font("Verdana", 1, 12));
        lblCidade.setForeground(new java.awt.Color(255, 255, 255));
        lblCidade.setText("Cidade");
        lblCidade.setBounds(50, 380, 70, 16);
        painel.add(lblCidade, javax.swing.JLayeredPane.PALETTE_LAYER);

        lblFundo.setForeground(new java.awt.Color(255, 255, 255));
        lblFundo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Interface/TelaFundo_1.JPG"))); // NOI18N
        lblFundo.setBounds(0, 0, 1024, 768);
        painel.add(lblFundo, javax.swing.JLayeredPane.DEFAULT_LAYER);
        txtFormatDataOrigem.setBounds(270, 580, 120, 20);
        painel.add(txtFormatDataOrigem, javax.swing.JLayeredPane.PALETTE_LAYER);
        txtFormatCep.setBounds(650, 380, 109, 20);
        painel.add(txtFormatCep, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtFormatCpf.setEnabled(false);
        txtFormatCpf.setBounds(590, 580, 140, 20);
        painel.add(txtFormatCpf, javax.swing.JLayeredPane.PALETTE_LAYER);

        txtFormatCnpj.setEnabled(false);
        txtFormatCnpj.setBounds(590, 610, 140, 20);
        painel.add(txtFormatCnpj, javax.swing.JLayeredPane.PALETTE_LAYER);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(painel, javax.swing.GroupLayout.PREFERRED_SIZE, 1024, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(painel, javax.swing.GroupLayout.PREFERRED_SIZE, 768, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        pack();
    }// </editor-fold>                        

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        this.dispose();
}                                           

    private void btnAdicionarActionPerformed(java.awt.event.ActionEvent evt) {                                             
        if(txtNome.getText().trim().length() == 0){
            JOptionPane.showMessageDialog(rootPane, "O campo nome deve ser preenchido");
        }        
        else{
            String nome = txtNome.getText();
            Pessoa pessoa = new Pessoa(nome);
            cadastroDePessoas.adiciona(pessoa);

            String bairro = txtBairro.getText();
            pessoa.setBairro(bairro);

            String email = txtEmailGeral.getText();
            pessoa.setEmail(email);

            String fone = txtTelefone.getText();
            pessoa.setTelefone(fone);

            String endereco = txtEndereco.getText();
            pessoa.setEndereco(endereco);
           
            String cidade = txtCidade.getText();
            pessoa.setCidade(cidade);

            String uf = txtUF.getText();
            pessoa.setUf(uf);

            String apelido = txtApelido.getText();
            pessoa.setApelido(apelido);

            String homepage = txtHomePage.getText();
            pessoa.setHomepage(homepage);

            String fax = txtFax.getText();
            pessoa.setFax(fax);

            if(txtFormatCep.getText().length() > 0 && txtFormatCep.getText().length() < 8){
                JOptionPane.showMessageDialog(null, "O numero do CEP é inválido");
            }
            else{
                String cep = txtFormatCep.getText();
                pessoa.setCep(cep);
            }

            if(!txtFormatDataOrigem.getText().trim().equals("__/__/____")){
                SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
                Date agora = new Date();
                Date cal = new Date();

                try {
                     cal = formatoData.parse(txtFormatDataOrigem.getText());
                }
                catch (ParseException ex){
                    JOptionPane.showMessageDialog(rootPane, "Formato da data incorreto", "Erro", JOptionPane.ERROR_MESSAGE);
                    return;
                }
               
                // TODO validar meses e dias :/

                if(cal.after(agora)){
                    JOptionPane.showMessageDialog(rootPane, "Data inválida", "Cuidado", JOptionPane.WARNING_MESSAGE);
                }
                else{
                    pessoa.setDataOrigem(cal);
                }
            }

            if(opcCpf.isSelected()){
                if(txtFormatCpf.getText().length() > 0 && txtFormatCpf.getText().length() < 14){
                    JOptionPane.showMessageDialog(null, "Campo \"CPF\" não esta preechindo completamente","Cuidado", JOptionPane.WARNING_MESSAGE);
                }
                else{
                    String cpf = txtFormatCpf.getText();
                    pessoa.setCpf(cpf);
                }
            }
            else if(opcCnpj.isSelected()){
                if(txtFormatCnpj.getText().length() > 0 && txtFormatCnpj.getText().length() < 18){
                    JOptionPane.showMessageDialog(null, "Campo \"CPF\" não esta preechindo completamente","Cuidado", JOptionPane.WARNING_MESSAGE);
                }
                else{
                    String cnpj = txtFormatCnpj.getText();
                    pessoa.setCnpj(cnpj);
                }
            }
            gerenciaTabelas.adicionaPessoa(cadastroDePessoas.ultimaPessoaDaLista().parametroAddTabPessoas());
            JOptionPane.showMessageDialog(null, "Individuo adicionado com sucesso","Parabéns", JOptionPane.PLAIN_MESSAGE);
            this.dispose();
        }
    }                                            

    private void opcCpfActionPerformed(java.awt.event.ActionEvent evt) {                                       
        if(opcCpf.isSelected()){
            txtFormatCpf.setEnabled(true);
            txtFormatCnpj.setEnabled(false);
            txtFormatCnpj.setText("");
        }
    }                                      

    private void opcCnpjActionPerformed(java.awt.event.ActionEvent evt) {                                        
        if(opcCnpj.isSelected()){
           txtFormatCnpj.setEnabled(true);
           txtFormatCpf.setEnabled(false);
           txtFormatCpf.setText("");
       }
    }                                       

    public JFormattedTextField getDataOrigem(){
        return txtFormatDataOrigem;
    }
    public CadastroDePessoas getCdp(){
        return cadastroDePessoas;
    }
    public void setCdp(CadastroDePessoas cdp){
        cadastroDePessoas = cdp;
    }
    public static JanelaAdicionarNovo getInstancia(){
        return instancia;
    }

    // Variables declaration - do not modify                     
    private javax.swing.ButtonGroup GrupoBotoesJAdd;
    private javax.swing.JButton btnAdicionar;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JLabel lblAlerta1;
    private javax.swing.JLabel lblApelido;
    private javax.swing.JLabel lblBairro;
    private javax.swing.JLabel lblCep;
    private javax.swing.JLabel lblCidade;
    private javax.swing.JLabel lblCnpj;
    private javax.swing.JLabel lblCpf;
    private javax.swing.JLabel lblDataOrigem;
    private javax.swing.JLabel lblDataSemEspacos;
    private javax.swing.JLabel lblEmailGeral;
    private javax.swing.JLabel lblEndereco;
    private javax.swing.JLabel lblFax;
    private javax.swing.JLabel lblFundo;
    private javax.swing.JLabel lblHomePage;
    private javax.swing.JLabel lblNome;
    private javax.swing.JLabel lblTelefone;
    private javax.swing.JLabel lblUf;
    private javax.swing.JRadioButton opcCnpj;
    private javax.swing.JRadioButton opcCpf;
    private javax.swing.JLayeredPane painel;
    private javax.swing.JTextField txtApelido;
    private javax.swing.JTextField txtBairro;
    private javax.swing.JTextField txtCidade;
    private javax.swing.JTextField txtEmailGeral;
    private javax.swing.JTextField txtEndereco;
    private javax.swing.JTextField txtFax;
    private javax.swing.JFormattedTextField txtFormatCep;
    private javax.swing.JFormattedTextField txtFormatCnpj;
    private javax.swing.JFormattedTextField txtFormatCpf;
    private javax.swing.JFormattedTextField txtFormatDataOrigem;
    private javax.swing.JTextField txtHomePage;
    private javax.swing.JTextField txtNome;
    private javax.swing.JTextField txtTelefone;
    private javax.swing.JTextField txtUF;
    // End of variables declaration                   
}

Classe que salva e abre (juntas)

package Classes;

import Interface.JanelaAdicionarNovo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class TesteSalvar{

    private JanelaAdicionarNovo jan = new JanelaAdicionarNovo();

    public boolean gravaArquivoBinario(){
        FileOutputStream arq = null;
        ObjectOutputStream os = null;
        

        try{
            arq = new FileOutputStream("BackUp.gss");
            os = new ObjectOutputStream(arq);
            os.writeObject(jan.getCdp());
        }
        catch(IOException ioe){
            ioe.printStackTrace();
        }
        finally{
            try {
                os.close();
            }
            catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return true;
    }

    public CadastroDePessoas leArquivoBinario(){
        FileInputStream arq = null;
        ObjectInputStream is = null;
        CadastroDePessoas cdp = null;

        try {
            arq = new FileInputStream("BackUp.gss");
            is = new ObjectInputStream(arq);
            cdp = (CadastroDePessoas) is.readObject();
            jan.setCdp(cdp);
            System.out.println(jan.getCdp().getLista().size());
            
            
        }
        catch (FileNotFoundException ex){
            ex.printStackTrace();
        }
        catch(IOException ioe){
            ioe.printStackTrace();
        }
        catch(ClassNotFoundException cnfe){
            cnfe.printStackTrace();
        }
        finally{
            try {
                is.close();
            }
            catch (IOException ex){
                ex.printStackTrace();
            }
        }
        return cdp;
    }
}

PS.: tem uns testes que eu tava fazendo :stuck_out_tongue: e ainda estão separadas, mas se eu uni-las acho q da certo! :wink:

guisantogui

Olha soh, postei o cod, mas o topico eh com foco se devo ou não usar o “truque” que bolei?

if(false), sugerem alguma coisa?

Hebertbc

Vc disse que esta salvando a lista errada, como assim?
Olhando parece-me que o detalhe esta aqui

gerenciaTabelas.adicionaPessoa(cadastroDePessoas.ultimaPessoaDaLista().parametroAddTabPessoas());

Post o codigo dela tbm

guisantogui

Esse metodo só adiciona o arquivo no banco de dados naum faz mais nada!

ok?
não mexe com os ArrayList’s

Hebertbc

Qual a utilizade desse metodo? Tipo vc ta criando um novo JanelaAdicionarNovo, por um acaso vc esta adicionando ele na lista?

public static JanelaAdicionarNovo getInstancia(){
        return instancia;
    }
guisantogui

eu fiz ao contrario peguei a classe que salva e abre e coloquei na GUI q add os caras na lista! :smiley:

Consegui salvar legal, vou tentar abrir!

Criado 14 de abril de 2010
Ultima resposta 14 de abr. de 2010
Respostas 7
Participantes 2