A questi punti direi che è anche l'unica.
Per come è strutturata l'interfaccia ActionListener direi che non si può creare una sua implementazione in una classe a se stante, se questa ha come action una azione su un oggetto esterno.