Criar um Evento que avise outra classe quando for executado Usando Listener , Event etc

3 respostas
R

OI Pessoal eu não tenho muita experiência com Java estou aprendendo , e preciso de uma ajuda

preciso criar um evento e avisar a outra classe que o evento foi executado , isso tenque ser usando : Event, Listener etc . não pode ser com o observer

Por Exemplo :

eu tenho duas classes, a classe Automovel e a classe Pessoa , e tenho na classe Automovel um método locomover, e eu preciso avisar a classe

Pessoa assim que a classe Automovel executar iniciou_Locomoção e também quando executar finalizou_Locomoção, através do método Locomoção.

eu só preciso que a classe Pessoa fique sabendo quando a classe Automovel inicia a locomoção e finaliza a locomoção.

ja tentei alguns exemplos mais ainda não conseguir chegar ao objetivo

espero que possam me ajudar, desde já agradeço.

3 Respostas

BrunoBastosPJ

Você está procurando um padrão chamado Observer.
Embora pareça complicado é bem simples de implementar o que você quer.

Basta que em algum lugar você passe para o seu objeto Automovel a instância de Pessoa que vocë deseja avisar.
E quando executar os métodos que deseja receber informações chame um método que avise esta instância de Pessoa.

Por exemploÇ

public class Automovel {
  private Pessoa p;
  public Automovel(Pessoa p) {
     this.p = p;
  }

  public void andar() {
     p.avisar("Automovel Andando");
     ...
  }
}
L

Primeiro cria uma interface para o listener e a classe de Evento:

public interface AutomovelListener {

   public void onEvent(AutomovelEvent event);

}

e

public class AutomovelEvent {

   private String event;

   public String getEvent() {
      return event;
   }

   public void setEvent(String evt) {
      event = evt;
   }

}

Agora faça Pessoa implementar a interface AutomovelListener:

public class Pessoa implements AutomovelListener {

   ...

   public void onEvent(AutomovelEvent event) {
      System.out.println("Evento: " + event.getEvent());
   }

}

Depois registre no automovel a pessoa, mas passando como AutomovelListener como listener e quando ocorrer um evento preencha um AutomovelEvent e chame onEvent no listener.

R

Valeu pela ajuda pessoal , me ajudou muito mesmo
muito obrigado
Abraços.

Criado 13 de maio de 2009
Ultima resposta 19 de mai. de 2009
Respostas 3
Participantes 3