Das sieht ja schon ungefähr so aus, wie ich vorgeschlagen hatte. Nur die ganzen ActionListener würde ich noch so wie in meinem Beispiel als anonyme Klasse erstellen - also keine extra Variablen dafür sondern direkt im Aufruf von addActionListener() zusammenbauen.