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
[code]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
}
[/code]
Classe Contato
[code]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());
}
*/
}[/code]
classe Agenda
[code]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
}
}[/code]
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