Eventos

Gostaria de saber como faço para criar meus próprios eventos.

Quando o método “somar” da Classe1 ser executado vai disparar um evento. Após o disparo do evento o método “mostrar resultado” da classe2 vai executar.

Exemplo:
public class Classe1
{
public static int resultado = 0;
public void somar(int a, int b)
{
resultado = a + b;
// disparar evento qualquer.
}
}

public class Classe2
{
// metodo que irá ouvir o evento disparado pelo método somar()
public void mostrarResultado()
{
System.out.println(Classe1.resultado);
}
}

Alguém poderia me ajudar a criar eventos próprios.

Você pode usar o design pattern “Observer”, é baseado nesse padrão que são implementados os Listeners do AWT/Swing:

Veja um exemplo:

[code]public interface Observador{
public void notificar(Observavel obs);
}

public interface Observavel{
public void addObservador(Observador obs);
}

public class Classe1 implements Observavel{
private List<Observador> observadores = new ArrayList<Observador>();

public int resultado = 0;

public void somar(int a, int b){
resultado = a + b;
notificarObservadores();
}

public void addObservador(Observador obs){
observadores.add(obs);
}
public void notificarObservadores(){
for(Observador obs : observadores){
obs.notificar(this);
}
}
}

public class Classe2{
private Classe1 c1 = new Classe1();

public Classe2(){
Observador obs = new Observador(){
public void notificar(Observavel o){
mostrarResultado();
}
};
c1.addObservador(obs);
}

public void mostrarResultado(){
System.out.println(c1.resultado);
}
}[/code]

Pra facilitar já existem as classe Observador e Observavel implementadas na API do Java SE:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Observable.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Observer.html

Sobre o padrão: