ppinna ha scritto:
VOLEVO OTTENERE DELLE IMMAGINI IN MOVIMENTO SOPRA L'IMMAGINE DELLO SCHERMO (DESKTOP).
NON VOLEVO PERÒ SALVARE IL FILE DELL'IMMAGINE CATTURATA IN MEMORIA MA TENERLO SOLO TEMPORANEAMENTE. NEL SEGUENTE LISTATO (SALVASCHERMO 4)VIENE DISEGNATA PENSO LA PRIMA IMMAGINE SOPRA QUELLA DELLO SCHERMO CHE È STATA CATTURATA MA NON C'È NESSUN MOVIMENTO.
IN UN LISTATO PRECEDENTE (SALVASCHERMO 1) SI OTTENEVA IL MOVIMENTO MA NON ERO RIUSCITO A EVITARE DI SALVARE IL FILE NELLA MEMORIA DEL COMPUTER. COME SI POTREBBE FARE?
Innanzitutto non scrivere tutto in maiuscolo ... non è buona cosa su forum/newsgroup.
Seconda cosa: il tuo codice è parecchio "confuso" (complice anche il fatto che è parziale con omissioni di varie parti).
Terza cosa, assolutamente lampante che ho notato subito: in un paintComponent NON fare caricamenti di immagini, tracking (MediaTracker) o cose del genere. Un paintComponent deve fare una sola cosa:
disegnare. E possibilmente il minimo indispensabile e il più velocemente possibile.
Nemmeno setOpaque(false), che va fatto una tantum (tipicamente nel costruttore)
Quarta cosa, che è poi quello che chiedi all'inizio: il Robot ti fornisce un BufferedImage che è già completo, senza alcun bisogno di "tracking". Non c'è affatto bisogno di salvare la immagine e poi rileggerla. Usa (e disegna) direttamente questo BufferedImage, chiaramente devi passarlo dove/come necessario.