Però pensandoci, non mi è chiara una cosa, precisamente la riga frame.add(pannello.cancella,BorderLayout.NORTH);
Il pulsante lo dichiariamo fuori dal pannello, ma noi eseguiamo la chiamata "pannello.cancella", come se il pulsante fosse all'interno del pannello, mentre invece nel pannello c'è solo la chiamata all'evento... perchè è così? o_O