ho dovuto togliere "pf.pack ();" perchè mi visualizzava il frame schiacciato(era una fessura in pratica).
si nel tuo caso il pack non andava bene poichè tu hai settato le dimensioni al frame piuttosto che al pannello..di solito (almeno io) si settano le dimensioni desiderate al pannello e dopo averlo incapsulato nel frame si invoca su quest'ultimo il "pack" che lo incarica di adattare le sue dimensioni a ciò che contiene (in parole semplici).
Nella tua implementazione non avviene l'animazione poichè hai passato come ImageObserver null, quindi modifica la tua riga di codice del paintComponent di PannelloConImmagine da
codice:
g.drawImage(miaImmagine, 0, 0, null);
a
codice:
g.drawImage(miaImmagine, 0, 0, this);
Probabilmente anche qui vedrai l'animazione della gif più rapida rispetto a come la vedresti su un normale visualizzatore di immagini..per risolvere questo problema potresti:
-modificare i delay dei frame che compongono la gif
-sovrascrivere il metodo ImageUpdate del pannello su cui stai disegnando aggiungendoci ad esempio uno sleep (anche se non è bene far "dormire" l'EDT)