Ciao!
Una soluzione a questo problema può essere settare un flag, se quel flag vale true vuol dire che è il mio turno, quindi faccio una serie di addActionListener, quando quel flag vale false faccio una serie di removeActionListener perchè non è più il mio turno, ma come hai detto tu è una soluzione un po' spartana, Quello che ti consiglio è:
Metti un flag;
Dentro l'ActionListener metti un if su quel flag, se il flag vale true esegui le istruzioni che devi eseguire e lasci l'else vuoto così non succede niente nel caso in cui il flag abbia valore false.