Originariamente inviato da cozza.89
Io vorrei che le dimensioni dell'immagine diventassero quelle del "ImagePanel" ovunque io lo vada a posizionare (nel mio caso in una cella di un GridBagLayout). Mi basta fare uno "stretching" e quindi non mantenere le proporzioni.
Benissimo, hai (almeno) 2 possibilità:

1) Usi la variante di drawImage che ha width/height e si occupa lui dello "stretching" che esegue "al volo" mentre disegna (ma così lo fa ad ogni paintComponent).

2) Usi una immagine "cachata": se non c'è (ancora) immagine cachata o la sua dimensione è diversa dal pannello, crei una immagine, che tieni da parte, usando getScaledInstance() di Image. Utile se vuoi guadagnare in performance o se vuoi specificare il flag di "hints" per l'algoritmo di resampling.