Excluir objeto do ArrayList com uma variavel [RESOLVIDO]

Alguém poderia me ajudar na hora de excluir um objeto mas só tenho uma variavel desse objeto.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // Excluir a linha selecionada, também remover da estrutura
        DadoAnalisar d = new DadoAnalisar();
        //Pegar o nome do paciente
        String nome = JOptionPane.showInputDialog ("Insira o nome do paciente que deseja remover");
        //removendo o paciente da lista
        lista.remove (d.nome);
}

a classe DadoAnalisar é a seguinte

public class DadoAnalisar {
    private String paciente;
    private float area;

    public void setArea(float area) {
        this.area = area;
    }

    public void setPaciente(String paciente) {
        this.paciente = paciente;
    }

    public float getArea() {
        return area;
    }

    public String getPaciente() {
        return paciente;
    }


}

Como eu poderia excluir esse objeto do ArrayList com apenas essa variável “nome”?

Voce deve implementar equals e hashcode usando a variavel nome.
Essa implementação é do eclipse padrão.

[code]public class DadoAnalisar {
private String paciente;
private float area;

public void setArea(float area) {  
     this.area = area;  
 }  

 public void setPaciente(String paciente) {  
     this.paciente = paciente;       }  

 public float getArea() {  
    return area;  
}  

public String getPaciente() {  
    return paciente;  
 }

@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result
			+ ((paciente == null) ? 0 : paciente.hashCode());
	return result;
}

@Override
public boolean equals(Object obj) {
	if (this == obj)
		return true;
	if (obj == null)
		return false;
	if (getClass() != obj.getClass())
		return false;
	DadoAnalisar other = (DadoAnalisar) obj;
	if (paciente == null) {
		if (other.paciente != null)
			return false;
	} else if (!paciente.equals(other.paciente))
		return false;
	return true;
}

} [/code]

e na hora de tirar da lista deve criar um objeto de nome igual.

DadoAnalisar p=new DadoAnalisar ();
p.setPaciente("teste");
lista.remove(p);

tentei colocar esse codigo de exclusão e deu erro.
1º na hora da classe Paciente. Mas mudei pra DadoAnalisar
2º não ta excluindo.

O que poderá ser isso?

é eu tinha digitado errado ja arrumei la em cima.

mas mesmo assim ainda não esta excluindo o cara do ArrayList
o codigo que deixei ta assim:

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        // Excluir a linha selecionada, também remover da estrutura
        DadoAnalisar d = new DadoAnalisar();
        //Pegar o nome do paciente
        String nome = JOptionPane.showInputDialog ("Insira o nome do paciente que deseja remover");
        //removendo o paciente da lista
       // lista.remove (d.nome);
        //Paciente p=new Paciente();
        d.setPaciente(nome);
        lista.remove(d);
    }

Da uma debugada se não conseguir posta o codigo.

Desculpa a ignorancia ai, mas continua sem excluir.
Mas se não está usando hashcode e o equals, porque implementar?

Não entendi a implementação desses metodos

vou fazer um exemplo.

Pronto tem um exemplo feito em 5 minutos e muito mal orientado a objetos pois estou trabalhando.

Explicação voce tem que implementar equals usando a propriedade paciente, para o arrayList saber que 2 “DadoAnalisar” são iguais quando o paciente for igual.
ai é so remover…

import java.util.ArrayList;

public class Teste {

	public static void main(String[] args) {
		
		ArrayList<DadoAnalisar> lista=new ArrayList<DadoAnalisar>();
		lista.add(new DadoAnalisar("teste1"));
		lista.add(new DadoAnalisar("teste2"));
		lista.add(new DadoAnalisar("teste3"));
		
		for(DadoAnalisar dado:lista){
			System.out.println(dado.getPaciente());			
		}
		
		DadoAnalisar dadoExcluir=new DadoAnalisar("teste1");	
		lista.remove(dadoExcluir);
		
		System.out.println("---------------------------------------");
		for(DadoAnalisar dado:lista){
			System.out.println(dado.getPaciente());			
		}
	}

}

public class DadoAnalisar {

	private String paciente;
	private float area;

	public String getPaciente() {
		return paciente;
	}

	public void setPaciente(String paciente) {
		this.paciente = paciente;
	}

	public float getArea() {
		return area;
	}

	public void setArea(float area) {
		this.area = area;
	}
	public DadoAnalisar(String paciente) {
		super();
		this.paciente = paciente;
	}

	public boolean equals(Object obj) {	
		DadoAnalisar outro = (DadoAnalisar) obj;
       return this.getPaciente().equals(outro.getPaciente());
	}

}

Ai, brigadão pela força, mas não sei se é doideira minha, mas não está indo.
To desistindo disso por hj.
Vlw pela ajuda, até entendi o jeito e deve ser o certo, com certeza, mas devo está fazendo alguma merda.

Até mais

cara não tem como não rodar… acabei de testar.

cria um novo projeto java.

e adiciona as 2 classes que coloquei no outro post.

e roda a classe Teste que tem o metodo main.

para voce poder entender.

Foi, funcionou.

Vlw cara

procura colocar como resolvido o titulo do topico.

Nunca tinha feito nada disso em Forum, não sabia disso.
Não to achando onde que faz isso também.

Não sei se fiz certo, mas acho que foi

é assim mesmo.