Hej!
ButtonListener listener = new ButtonListener();
skapar en instans av din klass ButtonListener. Eftersom den implementerar ActionListener vet man om att den har en metod actionPerformed. När du gör addListener på en knapp får den en referens till listener. Det betyder att dina knappar kan anropa actionPerformed hos det lyssnar objektet vilket kallar på din kod. Detta är vad som händer i bakgrunden när du trycker på knappar.