Originariamente inviato da SteMito88
Capisco il tuo ragionamento quando dici che il costruttore di PannelloSfondo riceve un immagine e io gli passo una string... ma come faccio per metterlo a posto?

Come faccio a fargli passare un immagine e non una string?
La immagine la devi ovviamente "caricare" e le possibilità sono diverse:

a) Usi un ImageIcon e poi ne prendi il suo Image interno (tra l'altro ... avevi già fatto così!!) E oltretutto nessuno ti vieterebbe di mettere un costruttore in PannelloSfondo che riceve o già un ImageIcon oppure un String con il filename (e ci pensa il costruttore a caricare la immagine). Insomma ... chi/dove deve caricare la immagine lo scegli tu!

b) Usi uno dei read() della classe javax.imageio.ImageIO.

c) Usi il getImage() di java.awt.Toolkit.

Originariamente inviato da SteMito88
Ti riposto il codice che dovrebbe avere solo quest'ultimo errore...
Ma c'è ancora quel 'pannellosopra' che sebbene istanzi e assegni un JPanel .... non lo inserisci da nessuna parte!! Insomma ... hai un JPanel con dentro un JButton ma il pannello è lì da solo, non è messo dentro "qualcosa".