Hi JavaGemeinde,
ich habe nun die letzten drei Tage damit zugebracht, alle möglichen Foren, APIs, Codebsp. ... nach einer Lösung durchzuforsten, deswegen schickt mich bitte nicht weg.
Also, folgendes Problem, ich habe einen JTabbedPane, auf dem bis zu 25 Panels als KarteiKarten angezeigt werden. Auf den Panels sind JLabel, die über new ImageIcon() ein BufferedImage darstellen. Dieses BufferedImage besteht aus einer png-Datei (ca. 750 x 350 px), auf die zusätzlich noch ein paar Striche gezeichnet werden müssen.
Wenn ich nun das erste Mal die 25 Panels mit den 25 Labels anzeigen lasse, funktioniert alles einwandfrei, auch beim zweiten Mal, aber beim Dritten mal sind die 64MB heap space aufgebraucht, und dass obwohl ich
a) das JTabbedPane lösche,
b) das Panel lösche,
c) flush() und System.gc() ein paar Mal drin stehen habe...
Ich hab' echt alles ausprobiert. Hier mal ein wenig Code:
Kann jemand helfen?
Liebe Grüße,
Ulr!ch
ich habe nun die letzten drei Tage damit zugebracht, alle möglichen Foren, APIs, Codebsp. ... nach einer Lösung durchzuforsten, deswegen schickt mich bitte nicht weg.
Also, folgendes Problem, ich habe einen JTabbedPane, auf dem bis zu 25 Panels als KarteiKarten angezeigt werden. Auf den Panels sind JLabel, die über new ImageIcon() ein BufferedImage darstellen. Dieses BufferedImage besteht aus einer png-Datei (ca. 750 x 350 px), auf die zusätzlich noch ein paar Striche gezeichnet werden müssen.
Wenn ich nun das erste Mal die 25 Panels mit den 25 Labels anzeigen lasse, funktioniert alles einwandfrei, auch beim zweiten Mal, aber beim Dritten mal sind die 64MB heap space aufgebraucht, und dass obwohl ich
a) das JTabbedPane lösche,
b) das Panel lösche,
c) flush() und System.gc() ein paar Mal drin stehen habe...
Ich hab' echt alles ausprobiert. Hier mal ein wenig Code:
Code:
importe [...]
public class profil extends JFrame {
private static BufferedImage bimage = new BufferedImage(750, 350, BufferedImage.TYPE_INT_RGB);
public BufferedImage getBufferedImage([...]) {
try {
// Bimage mit ImageIO aus einer png-Datei laden
try {
bimage = ImageIO.read(new File("X:/[...]/abc.png")); // wird das 52 Mal aufgerufen, hängt's
}
catch (IOException e) {
e.printStackTrace();
}
}
catch (NullPointerException npe) {
System.out.println(npe);
}
// Linien zeichnen
Graphics g = bimage.getGraphics();
Graphics2D linie = (Graphics2D) g;
// [blabla]
repaint();
return(bimage);
}
}
Kann jemand helfen?
Liebe Grüße,
Ulr!ch