Ajuda, listando contatos

Bom noite Galera,

Bom pessoal minha primeira pergunta aqui no forum.
Comecei a estudar java faz pouco tempo, estou desenvolvendo uma agenda de contatos, estou com dificuldades de listar os contatos ja incluidos.

estou utilizando o banco “db40”

bom ai vao as classes

Classe AchaAmigo

package agenda1;
 import com.db4o.*;
 import javax.swing.JOptionPane;
 
 
 
 public class AchaAmigo extends javax.swing.JFrame {
 
     static Agenda ag;
     static ObjectContainer bd; 
     
     public AchaAmigo() {
         initComponents();
     }
     public void abrirAgenda(){
    ag = new Agenda();		
 		try{
                         JOptionPane.showMessageDialog(this,"ABRE");
 			bd = Db4o.openFile("Agenda.yap");  
 			ObjectSet r = bd.get(ag);           
 			if (r.hasNext()){                   
 			ag = (Agenda)r.next();              
 			}
                      
                             
 		}catch (Exception e){
 				
 		}
  }
 	
 public void salvarAgenda(){
 	try{	
               JOptionPane.showMessageDialog(this,"FEchA");
 		bd.set(ag);
 		bd.commit();
 	}catch (Exception e){
 		
 	}
 }
 
 
     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
     private void initComponents() {
         jTFNome = new javax.swing.JTextField();
         jTFTelefone = new javax.swing.JTextField();
         jBMostra = new javax.swing.JButton();
         jScrollPane1 = new javax.swing.JScrollPane();
         jTAMostra = new javax.swing.JTextArea();
 
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
         jBMostra.setText("mostra");
         jBMostra.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
                 jBMostraActionPerformed(evt);
             }
         });
 
         jTAMostra.setColumns(20);
         jTAMostra.setRows(5);
         jScrollPane1.setViewportView(jTAMostra);
 
         org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
         layout.setHorizontalGroup(
             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(layout.createSequentialGroup()
                 .add(146, 146, 146)
                 .add(jBMostra)
                 .addContainerGap(189, Short.MAX_VALUE))
             .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                 .add(66, 66, 66)
                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                     .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 231, Short.MAX_VALUE)
                     .add(org.jdesktop.layout.GroupLayout.LEADING, jTFTelefone, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 231, Short.MAX_VALUE)
                     .add(org.jdesktop.layout.GroupLayout.LEADING, jTFNome, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 231, Short.MAX_VALUE))
                 .add(103, 103, 103))
         );
         layout.setVerticalGroup(
             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
             .add(layout.createSequentialGroup()
                 .addContainerGap()
                 .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                 .add(25, 25, 25)
                 .add(jTFNome, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                 .add(18, 18, 18)
                 .add(jTFTelefone, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                 .add(36, 36, 36)
                 .add(jBMostra)
                 .addContainerGap(61, Short.MAX_VALUE))
         );
         pack();
     }// </editor-fold>
 
 
 ////////////////////////////////////////////////////////////////////////
 // creio q a dificuldade possa estar aqui.
 
  private void jBMostraActionPerformed(java.awt.event.ActionEvent evt) {                                         
         
         abrirAgenda();
 
         Contato[] c = ag.retornaTodos();
        // JOptionPane.showMessageDialog(this, "To antes  do laço.....");
         
     	for (int i=0; i<200; i++){
     	  if (c[i] !=null) { 
     		jTFTelefone.setText(c[i].retornarNome()); 	
           }
         }
            
                 
         salvarAgenda();
     }                                     
  
 
 ///////////////////////////////////////////////////////////////////////////////
 
     public static void main(String args[]) {
         java.awt.EventQueue.invokeLater(new Runnable() {
             public void run() {
                 new AchaAmigo().setVisible(true);
             }
         });
     }
     
     // Variables declaration - do not modify
     private javax.swing.JButton jBMostra;
     private javax.swing.JScrollPane jScrollPane1;
     private javax.swing.JTextArea jTAMostra;
     private javax.swing.JTextField jTFNome;
     private javax.swing.JTextField jTFTelefone;
     // End of variables declaration
     
 }

Classe Contato

package agenda1;
 public class Contato {
 
 	protected String email, telefone, endereco, cep, nome, cidade;// variaveis
     protected Data nascimento = new Data();// atributo definido na classe Data
     
     //cria os metodos
     
     public Familiar toFamiliar(){
     	Familiar f = new Familiar();
     	f.alterarNome(nome);
     	f.alterarEndereco(endereco);
     	f.alterarTelefone(telefone);
     	f.alterarCidade(cidade);
     	f.alterarEmail(email);
     	f.alterarCep(cep);
     	f.alterarNascimento(nascimento);
     	return f;
     }
     
         public Amigo toAmigo(){
     	Amigo f = new Amigo();
     	f.alterarNome(nome);
     	f.alterarEndereco(endereco);
     	f.alterarTelefone(telefone);
     	f.alterarCidade(cidade);
     	f.alterarEmail(email);
     	f.alterarCep(cep);
     	f.alterarNascimento(nascimento);
     	return f;
     }
     
         public Comercial toComercial(){
     	Comercial f = new Comercial();
     	f.alterarNome(nome);
     	f.alterarEndereco(endereco);
     	f.alterarTelefone(telefone);
     	f.alterarCidade(cidade);
     	f.alterarEmail(email);
     	f.alterarCep(cep);
     	f.alterarNascimento(nascimento);
     	return f;
     }
     
     
     
     
     
     public void alterarEmail(String e){
     	email = e;
     }
     
     public void alterarTelefone(String t){
     	telefone = t;
     }
     
     public void alterarEndereco(String e){
     	endereco = e;
     }
     
     public void alterarCep(String c){
     	cep = c;
     }
     
     public void alterarNome(String n){
     	nome = n;
     }
     
     public void alterarCidade(String c){
     	cidade = c;
     }
     
     public void alterarNascimento(Data d){
     	nascimento = d;
     }
     
     public void alterarNascimento(int d, int m, int a){
     	Data dat = new Data();
     	dat.alterarDia(d);
     	dat.alterarMes(m);
     	dat.alterarAno(a);
     	nascimento = dat;
     }
     
     public String retornarEmail(){
     	return email;
     }
     
     public String retornarTelefone(){
     	return telefone;
     }
     
     public String retornarEndereco(){
     	return endereco;
     }
     
     public String retornarCep(){
     	return cep;
     }
     
     public String retornarNome(){
     	return nome;
     }
     
     public String retornarCidade(){
     	return cidade;
     }
     
     public Data retornarNascimento(){
     	return nascimento;
     }
     
     public String qualSeuTipo(){
     	String retorno =  "Sou um Contato";
     	return retorno;
     }
     //main de teste
     /*
     public static void main(String[] args){
     	Contato c = new Contato();
     	c.alterarNome("Paulo Costa");
     	Data d = new Data();
     	d.alterarData(24,06,2001);
     	c.alterarNascimento(d);
     	   
      System.out.println(c.retornarNome());
      System.out.println(c.retornarNascimento().retornarDataInteira());
     	
     }
     */
    
 }

Classe Agenda

package agenda1;
 
 public class Agenda {
     protected String usuario, senha, nomeDono;
     protected Contato[] c = new Contato[200];
 
 
     
     public void alteraUsuario(String u){
     	usuario = u;
     }
     public String retornaUsuario(){
     	return usuario;
     }
     public void alteraSenha(String s){
     	senha = s;
     }
     public String retornaSenha(){
     	return senha;
     }
     public void alteraNomeDono(String d){
     	nomeDono = d;
     }
     public String retornaNomeDono(){
     	return nomeDono;
     }
     public Contato[] retornaTodos(){
     	return c;
     }
     public boolean inserirContato(Contato con){  //insere um tipo Contato  todo no array
     	int i = 0;
     	while ((c[i] != null)&&(i<200)) i++;    //varre o vetor buscando uma posição vazia
     	if(i<200){                              //contador for menor que 200, insere
     		c[i] = con;
     	    return true;                        //se conseguiu inserir
     	}  
     	return false;                           //não inseriu	
     }
 
 
 
 
     
    public boolean inserirContato(String nome,String email,String telefone,String endereco,
     							  String cep,String cidade,String historico,Data d){
     							  
     	Amigo a = new Amigo();
     	a.alterarNome(nome);
     	a.alterarEndereco(endereco);
     	a.alterarEmail(email);
     	a.alterarTelefone(telefone);
     	a.alterarCidade(cidade);
     	a.alterarCep(cep);
     	a.alterarHistorico(historico);
     	a.alterarNascimento(d);
     	boolean r = inserirContato(a);   //insere todo contato em r
     	return r;                        // retorna com a inserçaõ foi afetuada true ou false
     									  	
     }
     
     public boolean inserirContato(String nome, String email, String telefone, String endereco,
     							  String cep, String cidade, Data d, String cargo, String empresa){
     							  
     	Comercial com = new Comercial();
     	com.alterarNome(nome);
     	com.alterarEmail(email);
     	com.alterarTelefone(telefone);
     	com.alterarEndereco(endereco);
     	com.alterarCep(cep);
     	com.alterarCidade(cidade);
     	com.alterarNascimento(d);
     	com.alterarCargo(cargo);
     	com.alterarEmpresa(empresa);
     	boolean r = inserirContato(com);
     	return r;						  	
     							  	
     }
     
     public boolean inserirContato(String nome, String email, String telefone, String endereco,
     							  String cep, String cidade, Data d, String parentesco){
     							  
     	Familiar f = new Familiar();
     	f.alterarNome(nome);
     	f.alterarEmail(email);
     	f.alterarTelefone(telefone);
         f.alterarEndereco(endereco);
     	f.alterarCep(cep);
     	f.alterarCidade(cidade);
     	f.alterarNascimento(d);
     	f.alterarParentesco(parentesco);
     	boolean r = inserirContato(f);
     	return r;						  	
     							  	
     }    
     	
     	
     
     public boolean excluirContato(String n){
     	for(int i=0; i<200; i++){                //varre todo vetor
             if (c[i]!=null){   	
     		  Contato con = c[i];                //passa os valores do array para uma variavel
     		  String nome = con.retornarNome();  //passa para a variavel nome abusca do metodo 
     		  if (nome.equals(n)){               // equals compara Strings 
     			  c[i]=null;                     //insere null 
     			  return true;
     		  } 
             }	  		
     	}
     	return false;
     }
    
     public boolean excluirContato(Contato con){   //passa o Contato inteiro
     	for(int i=0; i<200; i++){                 //percorre o laço
     		if(c[i]==con){                        //testa
     			c[i]=null;
     			return true;
     		}
     	
     	}
     	return false;
     } 
    
    
    public Contato buscarContato(String n){
    	   for (int i=0; i<200; i++){
    	   		if (c[i]!=null)
    	   		if (c[i].retornarNome().equals(n)){
    	   			return c[i];
    	   		}	
    	   }
    	   return null;
    }
    
    public Contato[] buscarPorTipo(String t){
    		Contato ctemp[] = new Contato[200];
    		int i=0;
    		for(int j=0; j<200; j++){
    			if (c[j]!=null){
    				Contato con = c[j];
    				String tipo = con.getClass().toString();
    				if(tipo.equals(t)){
    					ctemp[i] = con;
    					i++;
    				}
    				
    			}
    		} 	
    	return ctemp;//retorna um array inteiro
 	
    }
    
     
     
    public Contato[] retornarAniversariante(int mes){
    		Contato[] ctemp = new Contato[200];
    		int i = 0;
    		for (int j=0; j<200;j++){
    			if (c[j]!=null){
    				Contato con = c[j];
    				Data d = con.retornarNascimento();
    				if (d.ehAniversariante(mes)){
    					ctemp[i] = con;
    					i++;
    				}
    			}
    		}
    	return ctemp;   //retorna um array inteiro
    }
    
    
     	
 }

bom … compilo e rodo o programa sem problema, so que qdo peço para listar os contatos…
O “sem vergonha” nao lista nada…
alguem tem a solucao ?

desde ja grato
abs leandrosu

Não escreva seus posts em caixa alta.
Debuga seu código aí na hora de listar pra vc ver pq não tah listando.
:slight_smile:
Qualquer dúvida posta aí.