Per prima cosa auguri a tutti
Poi vengo subito al problema, dall'esposizione fin troppo prolissa.
Ho un problema con la gestione degli eventi che non riesco a comprendere.

Ho una classe clsScacchieraLayout che deve notificare alcune azioni ad un'altra classe: clsScacchiera.

Per fare questo ho proceduto come segue:
1- ho definito una interfaccia ScacchieraListener con gli eventi da notificare:

codice:
package Scacchiera;

import java.util.EventListener;

interface ScacchieraListener extends EventListener
{
	public void Muovi(ScacchieraLayoutEvent event);
	public void Invia(ScacchieraLayoutEvent event);
	public void Indietro(ScacchieraLayoutEvent event);
}

2- definito una nuova classe per gli eventi:
codice:
package Scacchiera;

import java.util.EventObject;

class ScacchieraLayoutEvent extends EventObject
{
	private static final long serialVersionUID = 1L;
	public String msg;
	public String canale;
	
	ScacchieraLayoutEvent(clsScacchieraLayout source)
	{
		super(source);
	}
	ScacchieraLayoutEvent(clsScacchieraLayout source, String msg)
	{
		super(source);
		this.msg = msg;
	}
	ScacchieraLayoutEvent(clsScacchieraLayout source, String msg, String canale)
	{
		super(source);
		this.msg = msg;
		this.canale=canale;
	}
}
3- All'interno di clsScacchiera ho definito una nuova classe che implementa ScacchieraListener
codice:
class actionPerformed implements ScacchieraListener
	{[....]}
4- sempre da clsScacchiera viene istanziata clsscacchieralayout e fatto addlistener
codice:
actionPerformed handlerAction = new actionPerformed();
		scacchieraLayout = new Scacchiera.clsScacchieraLayout(applet, bianchi, neri, tempo,socket.userName,canale);
		scacchieraLayout.addListener(handlerAction);
dove addListener è il metodo di ScacchieraLayout:
codice:
public void addListener(ScacchieraListener listener) {
		listeners.add(ScacchieraListener.class, listener);
	}


5- Finalmente arrivo al problema che c'è quando faccio scattare l'evento. Se elimino le righe commentate sotto non scatta l'evento ma non riesco a capire il motivo

codice:
	private void fireIndietroEvent() {
		ScacchieraLayoutEvent event = new ScacchieraLayoutEvent(this);
		Object[] listenersArray = listeners.getListenerList();

		for (int i = listenersArray.length - 1; i >= 0; i -= 2) {
			
			 //if(listenersArray[i] == LoginListener.class) {
			((ScacchieraListener) listenersArray[i]).Indietro(event);
			// }
		}
	}
Qualche idea su dove sbaglio?