JLabel erst auf null dann auf einen Wert setzen

Andi_CH

Top Contributor
Ist so etwas sinnvoll? Ich meine erst auf null setzen und dann einen Wert setzen.
Wen ja warum? (Wenn nein warum werde ich wohl nie herausfinden ;-) )

setIcon() ist aus JLabel

Gefundenes Schnipsel ...
Java:
// release the memory
setIcon(null);
// set the scaled icon for displaying in this label
File f = new File(filename);
BufferedImage bi = ImageIO.read(f);
Icon image = new ImageIcon(bi.getScaledInstance(imageWidth, imageHeight, Image.SCALE_AREA_AVERAGING));
setIcon(image);
 
Nö macht meiner Meinung nach keinen Sinn. Wenn du nen neues ImageIcon setzt wird das alte eh entsorgt soferns da keine Referenzen mehr drauf gibt.
 
Der Entwickler hofft wohl, hier Speicher freigeben zu können. "Release the memory" ist aber eh Blödsinn. Besonders viel Sinn seh ich hier auch nicht.
 
Danke für die Bestätigung - es könnte ja theoretisch sein, dass setIcon(null) irgend einen Nebeneffekt hat, aber gefunden habe ich auch nichts.
 
wenn hier erst noch skaliert ein neues Bild erstellt wird, vergehen aber durchaus Milliarden an Nanosekunden
(auch wenn das neue Array vielleicht ganz früh schon angefordert wird),

gerade wenn man einen dicken Brocken X hat und einen neuen dicken Brocken Y, muss man ja nicht erst Y zusammenbauen,
dann zwangsweise beide im Speicher haben und dann erst X, welches sowieso nicht mehr benötigt wird, wegschmeißen,

in dem Fall X ruhig vorher als Müll deklarieren,
falls die Speichergrenze erreicht wird, kann das doch theoretisch den Unterschied zwischen einem OutOfMemomyError
und gerade noch die Kurve kriegen bedeuten, oder?
 
Zuletzt bearbeitet von einem Moderator:
Das hat natürlich was, denn ich habe keine Ahnung ob früher Bilder >> 500kB (wie jetzt in meinem Fall) verarbeitet wurden. Sicher aber hatten die Kisten vor 10 Jahren (und so alt sind die Souren möglicherweise) deutlich weniger Memory.

Milliarde * Nano - hm - mal die hochkomplexe Aufgabe lösen ;-)

Kann es echt Sekunden dauern ein Bild in handelsüblicher Grösse von einigen MB zu skalieren?
 

Zurück
Oben