Pessoal, estou com uma pequena dúvida que é a seguinte. Neste trecho de código, eu gostaria de armazenar as informações digitadas num ArrayList, e mostrar o ArrayList em todas as suas posições quando eu clicar no botao sair (btnSair), porém se eu colocar para percorrer o ArrayList dentro do evento do btnSair, só imprime o último registro adicionado, e não os outros.
Se eu coloco dentro do evento do btnAdicionar, ele imprime várias vezes, imprime na mesma quantidade de vezes do número da posição do Array.
Por que isso acontece?
public void actionPerformed(ActionEvent e) {
if (== btnAdicionar) {e.getSource()
//PASSANDO OS ATRIBUTOS PARA A CLASSE CONTATOS
contato.setNome(txtNome.getText());
contato.setTelefone(txtTelefone.getText());
contato.setEmail(txtEmail.getText());
contato.setRua(txtRua.getText());
contato.setNumero(txtNumero.getText());
contato.setBairro(txtBairro.getText());
contato.setCidade(txtCidade.getText());
contato.setEstado(txtEstado.getText());
//LIMPANDO TODOS OS CAMPOS
txtNome.setText("");
txtTelefone.setText("");
txtEmail.setText("");
txtRua.setText("");
txtNumero.setText("");
txtBairro.setText("");
txtCidade.setText("");
txtEstado.setText("");
JOptionPane.showMessageDialog(null, "Contato " + " '"+ contato.getNome()+"'" +" Cadastrado com sucesso!");
//ADICIONANDO AO ARRAY
array.add(contato);
//MOSTRANDO O QUE FOI ADICIONADO
//USANDO O FOR, ELE IMPRIME A QUANTIDADE DE VEZES QUE O ARRAY TEM DE TAMANHO.
// POR EXEMPLO, SE FOR IMPRIMIR A INFORMAÇÃO QUE ESTÁ NA POSIÇÃO 3, ELE IMPRIME 3 VEZES A MESMA INFORMAÇÃO.
} else if (e.getSource() == btnSair) {
TelaAgenda.this.dispose();
for (int n=0; n<array.size(); n++) {
System.out.println(array.get(n));
System.out.println("========================");
}
}
}
