Lista duplamente Ligada

3 respostas
R

Alguém poderia me dizer porque eu ainda não consigo excluir da lista ???

@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)) {

            No no = this.listaDuplamenteEncadeada.getPrimeiro();
            Pessoa pessoa = (Pessoa) no.getObjeto();


            int del = JOptionPane.showConfirmDialog(null, "Você tem certeza que deseja excluir?",
                    "Excluir!", JOptionPane.YES_NO_OPTION);
            if (del == JOptionPane.YES_OPTION) {

                System.out.println("teste");



                this.listaDuplamenteEncadeada.removerNo(pessoa);
                pessoa = (Pessoa) no.getObjeto();
                listaDuplamenteEncadeada.inserirPrimeiro(pessoa);

                System.out.println(pessoa.getNome());
            }
            //tNome.setText(null);
            //tDataDeNascimento.setText(null);
            //tIdade.setText(null);
            //tCpf.setText(null);
            //tNome.setEditable(false);
            //tDataDeNascimento.setEditable(false);
            //tIdade.setEditable(false);
            //tCpf.setEditable(false);
            // pessoaExcluir.setNome(tNome.getText());
            //  pessoaExcluir.setDataDeNascimento(tDataDeNascimento.getText());
            // pessoaExcluir.setIdade(tIdade.getText());
            //pessoaExcluir.setCpf(tCpf.getText());
            // listasEncadeadas.excluirNo(n);
            JOptionPane.showMessageDialog(null, "Dados excluidods com sucesso !");


            btnPesquisar.setEnabled(true);
            tPesquisar.setEditable(true);
            btnExcluir.setEnabled(false);
            btnPesquisar.setEnabled(true);


        } else {
            JOptionPane.showMessageDialog(null, " Você está prestes a excluír estes dados ! ");
        }

    }
    //Método que para pesquisa

    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);
            }
        }
        if (pessoa != null) {

            tNome.setText(pessoa.getNome());
            tDataDeNascimento.setText(pessoa.getDataDeNascimento());
            tIdade.setText(pessoa.getIdade());
            tCpf.setText(pessoa.getCpf());

            //tProfissao.setText(pessoa.getProfissao());
            pessoa = (Pessoa) no.getObjeto();
            this.listaDuplamenteEncadeada.inserirPrimeiro(pessoa);

            btnPesquisar.setEnabled(false);
            tPesquisar.setEditable(false);
            btnExcluir.setEnabled(true);
            btnPesquisar.setEnabled(false);
            tPesquisar.setText(null);
        }

    }
}

//Eis o método de exclusão, porém após excluído o
as informações da pessoa permanecem na lista!!!

public void removerNo(Pessoa pessoa) { No novo = new No(pessoa); System.out.println("teste2"); ultimo.ant = novo; novo.prox = null; novo.ant = null;

3 Respostas

al.barbosa

rafa.solon,

No método removerNo você está criando um novo nó, com new. Não entendi porque você cria um novo nó se você quer remover um nó.
Será que dentro do método removerNo não é para primeiro pesquisar na lista até achar o nó que você quer remover, e se achá-lo então removê-lo?

Também não entendi o código abaixo dentro do actionPerformed:

this.listaDuplamenteEncadeada.removerNo(pessoa); pessoa = (Pessoa) no.getObjeto(); listaDuplamenteEncadeada.inserirPrimeiro(pessoa);

Você exclui o primeiro nó e depois o inclui novamente?

P

como faço Uma classe Lampada com atributo ligada (tipo boolean) e métodos liga() e desliga() que nada retornam. O
método liga torna o atributo ligada true e o método desliga torna o atributo ligada false. Crie também o método
observa() que retorna a String ?ligada? se a lâmpada estiver ligada e ?desligada? se a lâmpada estiver desligada.

al.barbosa

PATRICIA,

/**
* como faço Uma classe Lampada com atributo ligada (tipo boolean) e métodos liga() e desliga() que nada retornam. O 
* método liga torna o atributo ligada true e o método desliga torna o atributo ligada false. Crie também o método 
* observa() que retorna a String ?ligada? se a lâmpada estiver ligada e ?desligada? se a lâmpada estiver desligada. 
*/
public class Lampada{
   private boolean ligada;
   public void liga(){
      ligada = true;
   }
   public void desliga(){
      ligada = false;
   }
   public String observa(){
      if(ligada){
         return "ligada";
      }else{
         return "desligada";
      }
   }
   public static void main(String args[]){
      Lampada lampada = new Lampada();
      lampada.liga();
      System.out.println(lampada.observa());
      lampada.desliga();
      System.out.println(lampada.observa());
   }
}
Criado 26 de maio de 2012
Ultima resposta 28 de mai. de 2012
Respostas 3
Participantes 3