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 !
[code]
- 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 atributosprivate 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 componentesprivate 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--;
}[/code]