PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java GUI Thread


instinct
2008-05-23, 23:15:48
Hallo!
Folgendes Problem:
Ich habe ein JPanel auf dem sich ein Icon und ein Label befindet.
Nun habe ich eine Liste von BufferedImages, die in einer Schleife in ein anderes Format transformiert werden sollen.
Dabei soll am Anfang der Schleife, also bevor die nächste Konvertierung kommt das Icon auf dem Panel geändert werden, aber das passiert nicht, die GUI wird direkt durch den Thread des Konvertieren geblockt und das Icon wird erst gesetzt wenn ALLE Bilder konvertiert sind.

Hier das Code Stück:
Java:
for (final String s: keySet)
{
File current = new File(dir.getAbsolutePath()+"/"+
imageMap.get(s).getName()+".ico");
try
{
// Setzen des Icon und Labels mit anschliessendem repaint()
setState(imageMap.get(s).getImage(),"Bilder werden konvertiert ... ("+count+")");
// Aktuelles Bild konvertieren
ICOEncoder.write(imageMap.get(s).getImage(),-1,current);
} catch (Exception e){}
}
setState(success,"Bilder erfolgreich konvertiert");


Ich hoffe ihr könnt mir helfen, bin echt am verzweifeln.
Gruß instinct

Trap
2008-05-23, 23:36:01
Am einfachsten ist es SwingWorker dafür zu benutzen:
http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html