Estou criando esta janela de cadastro no meu curso técnico. Estou com dificuldades em pesquisar uma pessoa pelo seu nome (Botão na janela 2). Tenho quase certeza que meu loop for esta errado.
package Frames;
import JavaBeans.Pessoa;
import Panels.PainelCadastro1;
import Panels.PainelCadastro2;
import java.util.ArrayList;
import javax.swing.JFrame;
public class PrimeiraTela extends JFrame {
ArrayList dados = new ArrayList<>();
PainelCadastro1 painelCadastro1;
PainelCadastro2 painelCadastro2;
public PrimeiraTela() {
painelCadastro1 = new PainelCadastro1(dados);
painelCadastro2 = new PainelCadastro2(dados);
this.add(painelCadastro1);
this.add(painelCadastro2);
this.setSize(500,600);
this.setTitle("Primeira Tela");
this.setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String args[]){
new PrimeiraTela();
}
}
package Panels;
import JavaBeans.Pessoa;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class PainelCadastro1 extends JPanel implements ActionListener {
JLabel nome;
JLabel idade;
JTextField tnome;
JTextField tidade;
JButton ver;
ArrayList dados;
public PainelCadastro1 (ArrayList dados) {
this.dados = dados;
nome = new JLabel("Nome:");
tnome = new JTextField ();
nome.setBounds(10,10,50,20);
tnome.setBounds(50,10,100,20);
this.add(nome);
this.add(tnome);
idade = new JLabel("Idade:");
tidade = new JTextField ();
idade.setBounds(10,40,50,20);
tidade.setBounds(50,40,100,20);
this.add(idade);
this.add(tidade);
ver = new JButton("Ver");
ver.setBounds(60,70,80,40);
this.add(ver);
ver.addActionListener(this);
this.setLayout(null);
this.setBounds(10,10,200,130);
this.setVisible(true);
this.setBackground(Color.RED);
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource().equals(ver)) {
Pessoa pessoa = new Pessoa();
pessoa.setNome(tnome.getText());
pessoa.setIdade(Integer.parseInt(tidade.getText()));
dados.add(pessoa);
}
}
}
package Panels;
import JavaBeans.Pessoa;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class PainelCadastro2 extends JPanel implements ActionListener {
JLabel pqnome;
JTextField pnome;
JButton pqs;
ArrayList dados;
public PainelCadastro2 (ArrayList dados) {
this.dados = dados;
pqnome = new JLabel("Nome:");
pnome = new JTextField ();
pqnome.setBounds(10,10,50,20);
pnome.setBounds(50,10,100,20);
this.add(pqnome);
this.add(pnome);
pqs = new JButton("Pesquisar");
pqs.setBounds(60,70,100,40);
this.add(pqs);
pqs.addActionListener(this);
this.setLayout(null);
this.setBounds(10,150,200,130);
this.setVisible(true);
this.setBackground(Color.PINK);
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource().equals(pqs)) {
Iterator it = dados.iterator();
while (it.hasNext()) {
Pessoa temp = (Pessoa) it.next();
pnome.setText(temp.getNome());
}
for(int i = 0; i < dados.size(); i++) {
if(dados.get(i).equals(pnome)){
System.out.println(dados.get(i));
}
}
}
}
}
package JavaBeans;
public class Pessoa {
private String nome;
private int idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}