Ciao a tutti,

ho uno scenario per cui chiedo consiglio, capito il quale mi si aprirà un mondo nuovo sicuramente; un attimo di pazienza che spiego il tutto

Si supponga di avere 2 classi ed un applet, di cui:
la prima classe è
codice:
public class SpecialList extends List{...}
la quale è una lista da me personalizzata, mentre la seconda classe è
codice:
public class SpecialComponent extends Panel
{
   Button[] vButton;
   ...
}
che è un pannello che gestisce dinamicamente una lista di bottoni in esso contenuti; ed infine un applet che utilizza queste due classi (o componenti)
codice:
public class MyApplet extends Applet
{
   SpecialList sl;
   SpecialComponent sc;
   ...
}
Ora volendo fare in modo che delle azioni compiute su questi oggetti membro, scaturisca qualcosa nella classe MyApplet, cosa devo fare?

"Improvvisando" ho visto che da MyApplet faccio
codice:
sl.addActionListener(this);
in MyApplet esegue actionPerformed (ovviamente se debitamente implementato), e lo fa perché comunque SpecialList è una lista.
Invece il codice
codice:
sc.addActionListener(this);
non è possibile farlo, poiché il Panel non implementa questo metodo; se dichiaro il metodo addActionListener in SpecialComponent, in cui "collego" il listener (MyApplet) ad ogni bottone dell'array, esso riceve l'azione del click in actionPerformed, tuttavia come sorgente dell'evento risulta il singolo bottone interno e non il loro componente padre SpecialComponent.

Mi rendo conto che la cosa è intrecciata, ma spero che almeno la questione sia chiara...

Idee?