codice:
save.readObject();

Questa istruzione legge l'oggetto dal file e... lo butta via.

La documentazione va letta:

codice:
Object readObject(): Reads an Object from the ObjectInputStream
Returns: the object read from the stream

Quindi, se chiami readObject() e non assegni il valore di ritorno a nulla, l'oggetto letto lo butti via.
Ci si aspetta che quel metodo venga usato in questo modo:

codice:
variabile = (cast) save.readObject();

Dove "variabile" è la variabile a cui assegnare l'oggetto letto e il cast serve a castare la lettura al tipo corretto (visto che readObject() restituisce un Object).

Ad ogni modo, salvare su file il content-pane di un componente grafico non ha gran ché senso. Dovresti ri-pensare il tutto profondamente. Quello che andrebbe salvato è lo "stato" del tuo gioco, che poi andrebbe ri-letto dal file e ricostruito in base alle informazioni lette.


Ciao.