Problem: Ich versuche eine Diashow zu schreiben. doch wenn ich sie laufen lasse Zählt der Speicher hoch bis ein Java heap space Fehler kommt. Ich müsste also wissen wie ich die Images so lade, dass sie sich stehts überschreiben oder wie ich die nicht mehr benötigten Images lösche.
Java:
...
public void run()
{
MediaTracker LadeKontrolle = new MediaTracker(this);//Ladeüberwachung Inizialisiren
Toolkit tk = getToolkit();
for (int i=544; i<ShowL;++i){
Bilder=null;
Bilder=tk.getImage(Liste[i]); //Bild Laden
LadeKontrolle.addImage(Bilder, 0); //Ladeüberwachung auf Bild
try { //
System.out.println("Laden Bild "+i); //für mich zum Triggern
LadeKontrolle.waitForAll(); //Warten bis Laden beendet
System.out.println("Ende Bild"); //für mich zum Triggern
} catch (InterruptedException e){
break;
}
repaint();
try {
Thread.sleep(Zeit);
} catch (InterruptedException e){
//break;
}
}
}
public void paint(Graphics g)
{
if (Bilder != null)
{
ScaldB = Bilder.getScaledInstance(WinLa, WinHi, 1);
MediaTracker LadeKontrolle = new MediaTracker(this);
LadeKontrolle.addImage(ScaldB, 0);
try {
LadeKontrolle.waitForAll();
} catch (InterruptedException e){
}
g.drawImage(ScaldB, 0, 0, this);
}
}
...
Zuletzt bearbeitet: