Criar "eventos" customizados

Pessoal , boa tarde.

Não estou achando nada que de alguma dica de como criar “ouvites” p/ os meus objetos.

O cenário é o seguinte:

Tenho um obeto que irá realizar qualquer tarefa, e ele deve informar ao seu “criador” oq ele está fazendo, ou seja, assim como um botão dispara um evento sempre que ele é “clicado” meu objeto irá disparar um evento em determinadas condições.

A questão é : Como realizar o disparo de um evento informando quem o disparou juntamente com uma msg texto.

Alguem poderia me ajudar ?

Obrigado a todos.

[]s

Basta criar na sua classe que dispara eventos um List, um método como fireEvento(argumentos) e métodos para adicionar e remover listeners.

No método fireEvento, o List será percorrido e cada um dos ouvintes será notificado (a interface Ouvinte deve definir um método específico que as suas implementações deverão tratar, como o ActionListener tem o actionPerformed()).

Na classe que implementa Ouvinte, dentro do método definido na interface você faz o que for necessário.

Será que ajudou ou piorou tudo? Acho que tenho um exemplo, daqui a pouco eu posto.

Achei. É um ColisionListener. Veja:
Interface que define o Listener:

package org.j2dgameengine.event;

public interface CollisionListener {
	
	void collisionHappened(CollisionEvent e);

}

Classe que define o Evento:

package org.j2dgameengine.event;

import org.j2dgameengine.sprite.Sprite;

public class CollisionEvent {

	private Sprite sprite1;
	private Sprite sprite2;

	public CollisionEvent(Sprite sprite1, Sprite sprite2) {
		this.sprite1 = sprite1;
		this.sprite2 = sprite2;
	}

	public Sprite getSprite1() {
		return sprite1;
	}

	public Sprite getSprite2() {
		return sprite2;
	}

}

Uso:

private List<CollisionListener> collisionListeners;
//.....
collisionListeners = new ArrayList<CollisionListener>();
// quando um evento ocorre:
private void fireCollisionHappened(Sprite collider) {                  

	// notifies all listeners about a collision                        

	for (CollisionListener listener : collisionListeners) {            

		listener.collisionHappened(new CollisionEvent(this, collider));

	}                                                                  

}                                                                      

Marco, obrigado.

Consegui fazer com que minha classe consiga disparar eventos.

[]s

[quote=anderson.rossi]Pessoal , boa tarde.

Não estou achando nada que de alguma dica de como criar “ouvites” p/ os meus objetos.

O cenário é o seguinte:

Tenho um obeto que irá realizar qualquer tarefa, e ele deve informar ao seu “criador” oq ele está fazendo, ou seja, assim como um botão dispara um evento sempre que ele é “clicado” meu objeto irá disparar um evento em determinadas condições.

A questão é : Como realizar o disparo de um evento informando quem o disparou juntamente com uma msg texto.
[/quote]

vc simplesmente itera a lista de observaodres e invoka o método correspondente ao evento.
Leia isto http://www.javabuilding.com/workshop/disparando-eventos-com-observer-proxy-e-generics.html.
É um pouco mais do que quer , mas tem a explicação de como se implementa o mecanismo do observer.