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
}
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
}