Pessoal neste código quando eu excluo o método exclui toda a lista e perco todos os dados existentes de todas pessoas
porém além de querer deletar apenas uma pessoa apos prévia pesquisa, quando realizo uma pesquisa por nomes o mesmo dado excluído anteriormente persiste em ser exibido !
Desde já obrigado !
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Interface.Paineis;
import JavaBeans.Pessoa;
import TerceiraCamada.ListaDuplamenteEncadeada;
import TerceiraCamada.No;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.text.MaskFormatter;
/**
*
* @author Rafael Teixeira
*/
public class PainelExcluir extends JPanel implements ActionListener {
//Declara os atributos
private ListaDuplamenteEncadeada listaDuplamenteEncadeada;
private Pessoa pessoaExcluir;
private JLabel painelTitulo, pesquisar, logo, nome, idade, dataDeNascimento, cpf;
private JTextField tPesquisar, tNome, tIdade, tDataDeNascimento, tCpf;
private JButton btnPesquisar, btnExcluir;
private MaskFormatter maskTDataDeNascimento, maskTCpf;
No n;
//Construtor do PainelExcluir
public PainelExcluir(ListaDuplamenteEncadeada listaDuplamenteEncadeada) {
this.listaDuplamenteEncadeada = listaDuplamenteEncadeada;
this.initComponents();
this.configComponents();
this.insertComponents();
this.setLayout(null);
this.setBackground(Color.white);
this.setBounds(0, 0, 866, 700);
this.setBorder(BorderFactory.createLineBorder(Color.darkGray, 1));
}
//Inicia componentes
private void initComponents() {
this.pessoaExcluir = new Pessoa();
//Título do Painel
painelTitulo = new JLabel("Excluir Pessoas", SwingConstants.CENTER);
//Marca d'agua
logo = new JLabel(new ImageIcon(getClass().getResource("/imagem/solon_3.jpg")));
//formulário para pesquisa
pesquisar = new JLabel("Pesquisa por Nome", SwingConstants.RIGHT);
tPesquisar = new JTextField();
btnPesquisar = new JButton("Pesquisar");
//JLabel
nome = new JLabel("Nome:", SwingConstants.RIGHT);
idade = new JLabel("Idade:", SwingConstants.RIGHT);
dataDeNascimento = new JLabel("Data de Nascimento:", SwingConstants.RIGHT);
cpf = new JLabel("CPF:", SwingConstants.RIGHT);
//JTextField
tNome = new JTextField();
tDataDeNascimento = new JTextField(10);
tIdade = new JTextField();
tCpf = new JTextField(14);
btnExcluir = new JButton("Excluir");
}
//Configura componentes
private void configComponents() {
//logo.setBounds(600, 370, 500, 314);
pesquisar.setBounds(10, 50, 120, 20);
tPesquisar.setBounds(140, 50, 250, 20);
btnPesquisar.setBounds(400, 45, 120, 30);
btnPesquisar.setIcon(new ImageIcon(getClass().getResource("/imagem/pesquisar.png")));
btnPesquisar.addActionListener(this);
logo.setBounds(300, 370, 500, 314);
try {
maskTCpf = new MaskFormatter("###.###.###-##");
maskTDataDeNascimento = new MaskFormatter("##/##/####");
maskTCpf.setPlaceholderCharacter(' ');
maskTDataDeNascimento.setPlaceholderCharacter(' ');
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, "Droga de erro!!!",
"Erro!", JOptionPane.ERROR_MESSAGE);
}
tCpf = new JFormattedTextField(maskTCpf);
tDataDeNascimento = new JFormattedTextField(maskTDataDeNascimento);
painelTitulo.setBounds(10, 10, 840, 30);
painelTitulo.setForeground(Color.darkGray);
painelTitulo.setFont(new Font("Arial", Font.BOLD, 24));
nome.setBounds(10, 100, 120, 20);
dataDeNascimento.setBounds(10, 130, 120, 20);
idade.setBounds(10, 160, 120, 20);
cpf.setBounds(10, 190, 120, 20);
tNome.setBounds(140, 100, 350, 20);
tNome.setEditable(false);
tDataDeNascimento.setBounds(140, 130, 70, 20);
tDataDeNascimento.setEditable(false);
tIdade.setBounds(140, 160, 30, 20);
tIdade.setEditable(false);
tCpf.setBounds(140, 190, 95, 20);
tCpf.setEditable(false);
btnExcluir.setBounds(140, 520, 150, 30);
btnExcluir.setIcon(new ImageIcon(getClass().getResource("/imagem/delete.png")));
btnExcluir.setEnabled(false);
btnExcluir.addActionListener(this);
}
private void insertComponents() {
this.add(painelTitulo);
this.add(logo);
this.add(pesquisar);
this.add(tPesquisar);
this.add(btnPesquisar);
this.add(nome);
this.add(dataDeNascimento);
this.add(idade);
this.add(tNome);
this.add(tDataDeNascimento);
this.add(tIdade);
this.add(btnExcluir);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(btnPesquisar)) {
if (!tPesquisar.getText().isEmpty()) {
this.pesquisarExcluir();
} else {
JOptionPane.showMessageDialog(null,
"Você deve digitar um nome para realizar a exclusão !",
"Erro!", JOptionPane.ERROR_MESSAGE);
}
}
if (e.getSource().equals(btnExcluir)) {
listaDuplamenteEncadeada.removerPrimeiro(pessoaExcluir);
}
private void pesquisarExcluir() {
No no = this.listaDuplamenteEncadeada.getPrimeiro();
Pessoa pessoa = (Pessoa) no.getObjeto();
while (!tPesquisar.getText().equals(pessoa.getNome())) {
no = no.prox;
if (no == null) {
JOptionPane.showMessageDialog(null, "Nome inexistente na lista !",
"ERRO!", JOptionPane.ERROR_MESSAGE);
} else {
pessoa = (Pessoa) no.getObjeto();
}
}
if (pessoa != null) {
tNome.setText(pessoa.getNome());
tDataDeNascimento.setText(pessoa.getDataDeNascimento());
tIdade.setText(pessoa.getIdade());
tCpf.setText(pessoa.getCpf());
//tProfissao.setText(pessoa.getProfissao());
this.listaDuplamenteEncadeada.inserirPrimeiro(pessoa);
btnPesquisar.setEnabled(false);
tPesquisar.setEditable(false);
btnExcluir.setEnabled(true);
btnPesquisar.setEnabled(false);
tPesquisar.setText(null);
}
}
}
//segue aqui os métodos da classe listaDuplamenteEncadeada
public void removerPrimeiro(Pessoa pessoa) {
if (getTotalNos() == 1) {
primeiro = ultimo = null;
} else {
System.out.println(pessoa.getNome());
primeiro = primeiro.prox;
primeiro.ant = null;
System.out.println(pessoa.getNome());
}
totalNos--;
}