HashMap em Agenda - Consultar

Bom dia pessoal,

Sou iniciante em java, e estou desenvolvendo uma agenda no Netbeans. Estou fazendo um botão Consultar com HashMap.

Gostaria de saber como fazer o JTextfield receber o valor do mapa no HashMap.
Criei um JButton Consultar e dois TextFields…

Aqui esta uma parte do código Consultar:

public class Consultar extends javax.swing.JFrame {
private String nome;
private String email;

public Consultar() {
    initComponents();
}

HashMap map=new HashMap();    

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
Consultar contato=new Consultar();

contato.setNome(jTextField1.getText());
map.put(“Tiago”,“1234”);

   if (map.get(contato.getNome()) != null) {
        System.out.println("Esse nome já esta cadastrado!");
        jTextField1.setText(" ");
        jTextField2.setText(" ");
    }

    for(Iterator it = map.keySet().iterator(); it.hasNext() ;) {
        Object chave = it.next();
        Object valor = map.get(nome);
        System.out.println(getNome()+"="+getNome());
    }

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Consultar().setVisible(true);
}
});
}

    public String getNome() {
        return nome;
    }
    
    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public String getEmail() {
        return email;
    }
    
    public void setEmail(String email) {
        this.email = email;
    }
    
// Declaração de variáveis - não modifique                     
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JToggleButton jToggleButton1;
// Fim da declaração de variáveis                   

}

Alguém poderia me ajudar, por favor?

Obrigado!!

Oi Tiago, bem vindo ao GUJ!

Pra começar, deixa eu ver se entendi o que você quer fazer aqui. Você tem um JFrame Consultar, com dois textboxes e um botão. Essa classe Consultar também tem um HashMap que vai guardar uma lista de telefones. Quando você clicar no botão, ela vai verificar o que está no texbox 1, tentar encontrar no HashMap esse valor, e se achar, exibir no textbox 2.

Se for isso mesmo, então a primeira coisa que a gente pode fazer é remover aqueles atributos nome e email e os métodos de acesso (gets e sets). Eles não estão nos servindo para nada. A segunda coisa é mover a inicialização do map para o construtor do Consultar:

public Consultar() {
  map.put("Tiago","1234");
  initComponents();
}

A última coisa é olhar o que o click do botão está fazendo no momento. Não é o que você queria. Veja isso:

if (map.get(contato.getNome()) != null) { System.out.println("Esse nome já esta cadastrado!"); jTextField1.setText(" "); jTextField2.setText(" "); }
Esse código estaria correto se você quisesse cadastar um valor, não consultá-lo! O que você poderia escrever no lugar seria algo assim:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
  String numero =  map.get(jTextField1.getText());
  if (numero != null) {
    jTextField2.setText(numero);
  } else {
    jTextField2.setText("não encontrado");
  }
}

E por último, aqui vão duas dicas: Comece com programas puro-texto até você se sentir confiante, porque programas com interface gráfica no Java adicionam uma porção de conceitos complicados de que você não precisa no momento. E use sempre tags CODE para marcar o seu código Java, pois assim fica mais fácil de ler e te ajudar.

EDIT: uma coisa que faltou falar foi que você deveria alterar a inicialização do seu HashMap para incluir o tipo:

Map<String, String> map = new HashMap<String, String>();

Muito obriogado por ter respondido!

Então tentei executar io código que você enviou e esta dando o seguinte erro:

C:\Documents and Settings\Tiago de Rizzo\AgendaGuj\src\agendaguj\Consultar.java:78: cannot find symbol
symbol : variable map
location: class agendaguj.Consultar
String numero = map.get(jTextField1.getText());
1 error
FALHA NA EXECUÇÃO (tempo total: 0 segundos)

/*

  • Consultar.java
  • Created on 30 de Novembro de 2007, 11:31
    */

package agendaguj;

import java.util.HashMap;
import java.util.Map;

/**
*

  • @author Tiago de Rizzo
    */
    public class Consultar extends javax.swing.JFrame {

    /** Creates new form Consultar */
    public Consultar() {
    Map<String, String> map = new HashMap<String, String>();
    map.put(“Tiago”,“1234”);
    initComponents();
    }

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      */
      //
      private void initComponents() {
      jButton1 = new javax.swing.JButton();
      jTextField1 = new javax.swing.JTextField();
      jTextField2 = new javax.swing.JTextField();

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      jButton1.setText(“jButton1”);
      jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent evt) {
      jButton1MouseClicked(evt);
      }
      });

      jTextField1.setText(“jTextField1”);

      jTextField2.setText(“jTextField2”);

      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
      .addContainerGap(171, Short.MAX_VALUE)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addGroup(layout.createSequentialGroup()
      .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addGap(32, 32, 32)
      .addComponent(jButton1)))
      .addGap(63, 63, 63))
      );
      layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(50, 50, 50)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jButton1)
      .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addContainerGap(201, Short.MAX_VALUE))
      );
      pack();
      }//

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
    String numero = map.get(jTextField1.getText());
    if (numero != null) {
    jTextField2.setText(numero);
    } else {
    jTextField2.setText(“não encontrado”);
    }

// TODO adicione seu código de manipulação aqui:
}

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Consultar().setVisible(true);
        }
    });
}

// Declaração de variáveis - não modifique                     
private javax.swing.JButton jButton1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// Fim da declaração de variáveis                   

}

Não to conseguindo achar o erro aqui, to tentando ainda hehe se você souber me passar por favor?

Valeu mesmo!

Tentei criar um JFrame novamente e deu um erro diferente, estou fazendo alguma coisa errada que é simples

Classe “agendaguj.Consultar” não tem um método main

/*

  • Consultar.java
  • Created on 30 de Novembro de 2007, 11:51
    */

package agendaguj;

/**
*

  • @author Tiago de Rizzo
    */
    public class Consultar extends javax.swing.JFrame {

    /** Creates new form Consultar */
    public Consultar() {
    Map<String, String> map = new HashMap<String, String>();
    map.put(“Tiago”,“1234”);
    initComponents();
    }
    }
    //
    private void initComponents() {
    jButton1 = new javax.swing.JButton();
    jTextField1 = new javax.swing.JTextField();
    jTextField2 = new javax.swing.JTextField();

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
             formMouseClicked(evt);
         }
     });
    
     jButton1.setText("jButton1");
     jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
             jButton1MouseClicked(evt);
         }
     });
    
     jTextField1.setText("jTextField1");
    
     jTextField2.setText("jTextField2");
    
     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
     getContentPane().setLayout(layout);
     layout.setHorizontalGroup(
         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
             .addContainerGap(173, Short.MAX_VALUE)
             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                 .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
             .addGap(50, 50, 50)
             .addComponent(jButton1)
             .addGap(43, 43, 43))
     );
     layout.setVerticalGroup(
         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGroup(layout.createSequentialGroup()
             .addGap(48, 48, 48)
             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                 .addComponent(jButton1)
                 .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
             .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
             .addContainerGap(203, Short.MAX_VALUE))
     );
     pack();
    

    }//

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

String numero = map.get(jTextField1.getText());
if (numero != null) {
jTextField2.setText(numero);
} else {
jTextField2.setText(“não encontrado”);
}
// TODO adicione seu código de manipulação aqui:
}

private void formMouseClicked(java.awt.event.MouseEvent evt) {

// TODO adicione seu código de manipulação aqui:
}

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Consultar().setVisible(true);
        }
    });
}

// Declaração de variáveis - não modifique
private javax.swing.JButton jButton1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// Fim da declaração de variáveis

}

Caro Amigo,

Crie uma classe para o cadastro de pessoa e defina os métodos que desejar:


public class Pessoa {
    
    private String nome;
    private String email;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    
}

Feito isto crie seu formulário de busca:

import java.util.HashMap;
import javax.swing.JOptionPane;

public class Consultar extends javax.swing.JFrame {
    
    HashMap map = new HashMap();
    
    public Consultar() {
        initComponents();
        
        // cria dois Pessoas no cadastro
        Pessoa p1 = new Pessoa();
        p1.setNome("Ana");
        p1.setEmail("www@www");
        map.put(1, p1);
        
        Pessoa p2 = new Pessoa();
        p2.setNome("Marcia");
        p2.setEmail("yyy@yyy");
        map.put(2, p2);
    }

    // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        tfNome = new javax.swing.JTextField();
        tfEmail = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        tfPocura = new javax.swing.JTextField();
        btBuscar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jLabel1.setText("Nome:");

        jLabel2.setText("Email");

        jLabel3.setText("Procurar:");

        btBuscar.setText("Buscar");
        btBuscar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btBuscarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel2)
                                    .addComponent(jLabel1))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(tfEmail)
                                    .addComponent(tfNome, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(tfPocura))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(111, 111, 111)
                        .addComponent(btBuscar)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(tfPocura, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(14, 14, 14)
                .addComponent(btBuscar)
                .addGap(29, 29, 29)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(tfNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(tfEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                        

    private void btBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String texto = tfPocura.getText();
        
        for (int i = 1; i < map.size(); i++) {
            Pessoa aux = (Pessoa) map.get(i);
            if (texto.equals(aux.getNome())) {
                tfNome.setText(aux.getNome());
                tfEmail.setText(aux.getEmail());
            } else JOptionPane.showMessageDialog(this, "Não há cadastros para este nome");
        }
    }                                        
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Consultar().setVisible(true);
            }
        });
    }
    
    // Declaração de variáveis - não modifique                     
    private javax.swing.JButton btBuscar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JTextField tfEmail;
    private javax.swing.JTextField tfNome;
    private javax.swing.JTextField tfPocura;
    // Fim da declaração de variáveis                   
    
}

No construtor da classe eu crie duas pessoas (você pode ter um cadastro de pesoa por exemplo)

Daí o que for digitado no JTextField Procurar (tfProcurar) e clicado no botão Buscar quando encontrado será mostrado no JTextField Nom e Email.

Vale lembrar qu a busca é case sensitive (diferencia letras MAIÚSCULAS de mnúsculas).

Abraços.

Muito Obrigado irei testar aqui!

Consegui rodar, era isso mesmo que queria. Muito Obrigado Pessoal!!!

Se for possível vc poderia me explicar as linhas desse código?

    String texto = tfProcura.getText();    // aqui esta recebendo o TextField2 renomeado pra tfProcura    
    for (int i = 1; i < map.size(); i++) {
        Pessoa aux = (Pessoa) map.get(i);
        if (texto.equals(aux.getNome())) {
            tfNome.setText(aux.getNome());
            tfEmail.setText(aux.getEmail());
        } else JOptionPane.showMessageDialog(this, "Não há cadastros para este nome");
    }   

Obrigado!!

String texto = tfProcura.getText(); // pega o texto digitado no jtextfield Procurar
for (int i = 1; i < map.size(); i++) { // um for para percorrer todos os objetos contido no map
Pessoa aux = (Pessoa) map.get(i); // instância de Pessoa que irá receber um objeto específico do map fazendo um cast do objeto para pessoa
if (texto.equals(aux.getNome())) { // comparação do texto digitado com o nome da Pessoa que foi "pega" do objeto map retornando true se for igual e false se for diferente
// se for igual, insere o nome e o email nos respectivos jtextfields
tfNome.setText(aux.getNome()); 
tfEmail.setText(aux.getEmail());
break; // tinha esquecido, para o for se encontrar
} else JOptionPane.showMessageDialog(this, "Não há cadastros para este nome"); // caso não encontre o texto digitado, apresenta uma mensagem.
}

muito obrigado mais uma vez!! :smiley:

Estou tentando elaborar o botão Alterar com base no seguinte código de Consultar:

/*

  • Consultar.java
  • Created on 30 de Novembro de 2007, 12:26
    */

package agenda2007;

import java.util.HashMap;
import javax.swing.JOptionPane;

/**
*

  • @author Tiago de Rizzo
    */
    public class Consultar extends javax.swing.JFrame {

    HashMap map = new HashMap();

    public Consultar(){
    initComponents();

     // cria dois Pessoas no cadastro
     Pessoa p1 = new Pessoa();
     p1.setNome("Ana");
     p1.setEmail("www@www");
     map.put(1, p1);
     
     Pessoa p2 = new Pessoa();
     p2.setNome("Marcia");
     p2.setEmail("yyy@yyy");
     map.put(2, p2);
    

    }

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      */
      //
      private void initComponents() {
      jToggleButton1 = new javax.swing.JToggleButton();
      tfProcura = new javax.swing.JTextField();
      tfEmail = new javax.swing.JTextField();
      jTextField3 = new javax.swing.JTextField();
      jLabel1 = new javax.swing.JLabel();
      jLabel2 = new javax.swing.JLabel();
      jLabel3 = new javax.swing.JLabel();
      tfNome = new javax.swing.JTextField();
      jLabel4 = new javax.swing.JLabel();
      jLabel5 = new javax.swing.JLabel();
      jTextField1 = new javax.swing.JTextField();
      jTextField2 = new javax.swing.JTextField();

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      jToggleButton1.setText(“Consultar”);
      jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jToggleButton1ActionPerformed(evt);
      }
      });

      jLabel1.setText(“Nome”);

      jLabel2.setText(“Email”);

      jLabel3.setText(“Telefone1”);

      jLabel4.setText(“Telefone2”);

      jLabel5.setText(“Telefone3”);

      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(60, 60, 60)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addComponent(jLabel5)
      .addContainerGap())
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addComponent(jLabel4)
      .addContainerGap())
      .addGroup(layout.createSequentialGroup()
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jLabel1)
      .addComponent(jLabel2)
      .addComponent(jLabel3)
      .addComponent(tfProcura, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(tfNome, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
      .addComponent(tfEmail, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
      .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
      .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
      .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)))
      .addGroup(layout.createSequentialGroup()
      .addGap(28, 28, 28)
      .addComponent(jToggleButton1)))
      .addGap(128, 128, 128)))))
      );
      layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(42, 42, 42)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(tfProcura, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addComponent(jToggleButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addGap(17, 17, 17)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jLabel1)
      .addComponent(tfNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jLabel2)
      .addComponent(tfEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jLabel3)
      .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jLabel4)
      .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jLabel5)
      .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addContainerGap(95, Short.MAX_VALUE))
      );
      pack();
      }//

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    String texto = tfProcura.getText();
    for (int i = 1; i < map.size(); i++) {
    Pessoa aux = (Pessoa) map.get(i);
    if (texto.equals(aux.getNome())) {
    tfNome.setText(aux.getNome());
    tfEmail.setText(aux.getEmail());
    } else JOptionPane.showMessageDialog(this, “Não há cadastros para este nome”);
    }
    }

    /**

    • @param args the command line arguments
      */
      public static void main(String args[]) {
      java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
      new Consultar().setVisible(true);
      }
      });
      }

    // Declaração de variáveis - não modifique
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JTextField tfEmail;
    private javax.swing.JTextField tfNome;
    private javax.swing.JTextField tfProcura;
    // Fim da declaração de variáveis

}

Seria a mesma lógica mesmo do botão Consultar?
Alguém poderia me dar mais uma help, por favor?

Obrigado!!

Poste seus códigos dentro das tags [code] e [/ code], isso ajuda muito a leitura.

Para alterar sugiro que você implemente o atributo codigo (com o get e o set) na classe pessoa.

Daí ao invéz de você ter a variável Pessoa aux local, deixei ela global na classe Consultar.

No evento do botão Alterar coloque o seguinte código:

    aux.setNome(tfNome.getText());
    aux.setEmail(tfEmail.getText());
    aux.setTel1(tfTel1.getText());
    aux.setTel2(tfTel2.getText());
    aux.setTel3(tfTel3.getText());

Versão 2.0

/*
 * Consultar.java
 *
 * Created on 30 de Novembro de 2007, 11:38
 */

package teste;

import java.util.HashMap;
import javax.swing.JOptionPane;

/**
 *
 * @author  Odilon
 */
public class Consultar extends javax.swing.JFrame {
    Pessoa aux = null;
    HashMap map = new HashMap();
    
    /** Creates new form Consultar */
    public Consultar() {
        initComponents();
        
        // cria dois Pessoas no cadastro
        Pessoa p1 = new Pessoa();
        p1.setNome("Ana");
        p1.setEmail("www@www");
        map.put(0, p1);
        
        Pessoa p2 = new Pessoa();
        p2.setNome("Marcia");
        p2.setEmail("yyy@yyy");
        map.put(1, p2);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Código Gerado ">                          
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        tfNome = new javax.swing.JTextField();
        tfEmail = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        tfPocura = new javax.swing.JTextField();
        btBuscar = new javax.swing.JButton();
        btAlterar = new javax.swing.JButton();
        btCadastrar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jLabel1.setText("Nome:");

        jLabel2.setText("Email");

        jLabel3.setText("Procurar:");

        btBuscar.setText("Buscar");
        btBuscar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btBuscarActionPerformed(evt);
            }
        });

        btAlterar.setText("Alterar");
        btAlterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAlterarActionPerformed(evt);
            }
        });

        btCadastrar.setText("Cadastrar");
        btCadastrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCadastrarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel2)
                                    .addComponent(jLabel1))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(tfEmail)
                                    .addComponent(tfNome, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(btCadastrar)))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(tfPocura))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(111, 111, 111)
                        .addComponent(btBuscar)))
                .addContainerGap(21, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(171, Short.MAX_VALUE)
                .addComponent(btAlterar)
                .addGap(40, 40, 40))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(tfPocura, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(14, 14, 14)
                .addComponent(btBuscar)
                .addGap(29, 29, 29)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(tfNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(tfEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btAlterar)
                    .addComponent(btCadastrar))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                        

    private void btCadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        aux = new Pessoa();
        aux.setNome(tfNome.getText());
        aux.setEmail(tfEmail.getText());
        map.put(map.size(),aux);
        limpaDados();
    }                                           
    
    private void btAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        aux.setNome(tfNome.getText());
        aux.setEmail(tfEmail.getText());
        limpaDados();
    }                                         
    
    private void btBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String texto = tfPocura.getText();
        boolean possuiRegistro=false;
        for (int i = 0; i < map.size(); i++) {
            aux = (Pessoa) map.get(i);
            if (texto.equals(aux.getNome())) {
                tfNome.setText(aux.getNome());
                tfEmail.setText(aux.getEmail());
                possuiRegistro=true;
                break;
            }
        }
        if (!possuiRegistro) {
            JOptionPane.showMessageDialog(this, "Não há cadastros para este nome");
            limpaDados();
            tfPocura.requestFocus();
        }
    }                                        
    
    public void limpaDados() {
        tfNome.setText("");
        tfEmail.setText("");
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Consultar().setVisible(true);
            }
        });
    }
    
    // Declaração de variáveis - não modifique                     
    private javax.swing.JButton btAlterar;
    private javax.swing.JButton btBuscar;
    private javax.swing.JButton btCadastrar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JTextField tfEmail;
    private javax.swing.JTextField tfNome;
    private javax.swing.JTextField tfPocura;
    // Fim da declaração de variáveis                   
    
}

cara muito obrigado!!! meu vcs ajudam pra caramba!! valeu!!!

Agora to tentando fazer o botão remover!! ta quase pronto!! ehe

Se vc puder me ajudar a fazer o remover eu fico grato!!

Thanks!!

bandkanone, uma solução melhor é usar o nome como chave do HashMap. Assim você remove aquele loop de busca.

como assim rubinelli?

vc pode me dar um exemplo?

Tem razão rubinelli, ao invés de fazer

faça assim para incluir:

map.put(tfNome.getText(), aux);  

Assim a chave passa a ser o nome da pessoa e não um int

E como eu fazeria pra carregar um arquivo que esta em um txt para o map (HashMap)?

Pessoal, como que faço pra fazer uma relação entre o botão adicionar e consultar na agenda…

Por exemplo tenho o botão consultar, quero consultar por nome, e jogar nos TextFields… é que criei uma pessoa no botao adicionar e outra no consultar… como faço pra usar só uma pessoa?

BOTÃO ADICIONAR:

Menu p4=new Menu();
p1.setNome(jTextField1.getText());
p4.setEmail(jTextField2.getText());
p4.setTelefone(jTextField3.getText());
p4.setTelefone2(jTextField4.getText());
p4.setTelefone3(jTextField5.getText());

    if (map.get(p4.getNome()) != null) {
        System.out.println("Esse nome já esta cadastrado!");
        jTextField1.setText(" ");
        jTextField2.setText(" ");
        jTextField3.setText(" ");
        jTextField4.setText(" ");
        jTextField5.setText(" ");
    } else
        
    {
        map.put(p4.nome,p4.nome);
        map.put(p4.nome,p4.email);
        map.put(p4.nome,p4.Telefone);
        map.put(p4.nome,p4.Telefone2);
        map.put(p4.nome,p4.Telefone3);
        try {
            FileWriter fw = new FileWriter("c:\\arq.txt",true);       //true grava mais que um registro, nao grava em cima
            PrintWriter grava = new PrintWriter(fw);
            grava.print(jTextField1.getText() + ";" + jTextField2.getText() + ";" + jTextField3.getText() + ";" + jTextField4.getText());
            grava.println();
            grava.close();
            fw.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        System.out.println("Gravou!!");
    }
}                                           

BOTÃO CONSULTAR:

    String texto = jTextField6.getText();
    for (int i = 1; i < map.size(); i++) {
        Menu aux = (Menu) map.get(i);
        if (texto.equals(aux.getNome())) {               
            jTextField1.setText(aux.getNome());
            jTextField2.setText(p4.getEmail());
            jTextField3.setText(aux.getTelefone());
            jTextField4.setText(aux.getTelefone2());
            jTextField4.setText(aux.getTelefone3());
        } else JOptionPane.showMessageDialog(this, "Não há cadastros para este nome");
    }