Proč vůbec pomocí vnitřní třídy?
vnitřní třída má přístup k (i chráněným) prvkům mateřské třídy!
poněkud nepřehledné, třída je skryta v ostatním kódu
navíc: pokud si speciálně nepamatujeme odkaz na jednou vytvořený a zapojený posluchač, pak jej nelze z paměti odstranit - nemáme na něj odkaz
V následujícím úryvku kodu se:
okno.addWindowListener(
    new WindowListener() {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }
);
...vytvoří jedna instance anonymní vnitřní třídy a ta se předá/použije jako posluchač událostí.