PDA

View Full Version : [Java - Swing] Immagini visualizzate... in ritardo.


francesco100uno
02-04-2011, 21:11
Salve a tutti!
Sto realizzando una micro applicazione che nella mie idee dovrà aprire una immagine e permettere di effettuare un minimo di fotoritocco.
Senza soffermarmi in particolari, istanzio un JFrame che contiene dei JMenu, dei JButtons e un Canvas centrale che rappresenta la superficie di disegno.
Carico un'immagine dal file system e la "metto" in un oggetto BufferedImage.
Successivamente prendo l'immagine e la "pubblico" nel Canvas mediante la seguente istruzione (nel metodo piant ridefinito del l'oggetto che estende Canvas da me creato):

graphics.drawImage(bufferedImage, x, y, this);

Ora il mio problema è questo. L'immagine non viene visualizzata subito sul Canvas, ma solo dopo che ho portato l'applicazione che ho creato in background e poi l'ho riportata in foreground (un "doppio" alt+tab è sufficiente per il mio scopo).

Ho anche provato ad includere l'istruzione in un metodo Runnable:

Runnable do RunnablePaint = new Runnable(){

public void run(){
graphics.drawImage(bufferedImage, x, y, null);
//qui il this sarebbe un oggetto Runnable
}

};
SwingUtilities.invokeLater(doRunnablePaint);

La situazione non cambia!:muro:

Qualcuno può, gentilmente aiutarmi? :doh:

Grazie in anticipo,
Francesco

}