Il tuo codice non compila nemmeno suppongo.
All'interno di FrameHome, dove fai:
codice:
// creo pannello e lo aggiungo al frame
pannello = new PannelloFrameHome();
add(pannello);
modifica in:
codice:
// creo pannello e lo aggiungo al frame
pannello = new PannelloFrameHome(this);
add(pannello);
All'interno di PannelloFrameHome, crea una variabile nei campi di istanza (dove hai i JButton) e chiamala tipo:
codice:
private FrameHome frameHome;
Ora nel costruttore di questo tuo pannello, visto che hai già il parametro fai solo:
codice:
public PannelloFrameHome(FrameHome frameHome) {
this.frameHome = frameHome;
dove invochi dispose, fai:
codice:
frameHome.dispose();
Attento comunque a ciò che fai, perchè il dispose provoca la chiusura del frame, e se è quello che mantiene l'applicazione... l'applicazione termina! Se intendi nasconderlo soltanto devi usare setVisible(false). Ad ogni modo poni quel dispose come ultima istruzione.
Non ho fatto prove, ma ad occhio dovrebbe andare... se ci sono problemi chiedi.