Ani-Gif nicht immer sichtbar

Hallo,
habe ein JWindow mit einem animierten Gif. Clicke ich auf einen Button geht das JWindow auf, bzw. wird einfach nur auf setVisible(true) gesetzt. Im Anschluß wie auf setVisible(false).

Wiederhole ich diesen Vorgang, läuft das ani-gif nicht mehr sauber bzw. ist manchmal gleich überhaupt nicht sichtbar. Nur das JWindow mit Text, ohne gif.

An was könnte das liegen? Hier mein Quelltext zum JWindow:

	//JWINDOW
		window = new JWindow();
		JPanel contentPane = new JPanel();
		contentPane.setBackground(new Color(255,153,51));
		contentPane.setLayout(new BorderLayout());
		Border bd1 = BorderFactory.createBevelBorder(BevelBorder.RAISED);
		Border bd2 = BorderFactory.createEtchedBorder();
		Border bd3 = BorderFactory.createCompoundBorder(bd1, bd2);
		((JPanel) contentPane).setBorder(bd3);
		String image = "dia-icon2.gif";
		String image2= "lamp2.gif";
		
		ImageIcon icon = new ImageIcon(image2);
		contentPane.add(new JLabel(icon, JLabel.CENTER),BorderLayout.CENTER);
		JLabel text = new JLabel("Bitte warten...", JLabel.CENTER);
		text.setFont(new Font("Tahoma", Font.PLAIN, 18));
		contentPane.add(text, BorderLayout.SOUTH);
    	window.getContentPane().add(
      	contentPane);
      	Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
      	window.setLocation(dim.width/100*40, dim.height/3);
      	
   		window.setSize(250,200);

Keine Ahnung ob du das bei nem ImageIcon auch benötigst, aber ich tippe mal darauf, dass das Image nicht immer gleich geladen ist. Versuchs mal mit nem MediaTracker, der sein OK gibt, wenn das Bild fertig geladen ist.

Ich habe es jetzt mal mit einem normalen gif versucht, da klappt es einwandfrei. MediaTracker und ImageIcon habe ich nicht hinbekommen. Scheint so als wären die nicht kompatibel?

Hm stimmt. Hab grad mal in der API nachgeguckt, beim ImageIcon wird sowieso schon der MediaTracker verwendet. Sry. Wüsst jetzt spontan auch nicht woran das liegen könnte, hab noch nie ein animiertes Gif in Java geladen und angezeigt … kannste irgendwie definieren, wann es funktioniert und wann nicht? Oder isses total willkürlich?

Also beim ersten mal geht es eigentlich immer. Bei allen weiteren Aktionen würde ich sagen total willkürlich!

Versuchs mal damit, gleich nachdem du das ImageIcon erzeugt (aber dem JLabel noch nicht zugewiesen) hast.

while (icon.getImageLoadStatus() == MediaTracker.LOADING);

oder

JLabel animatedLabel = new JLabel(animatedImage); 
animatedImage.setImageObserver(animatedLabel);```

Vielen Dank schon mal! Mit den beiden Möglichkeiten funktioniert es, zumindest ist es schon deutlich besser. Mir ist jetzt nur noch ein Problem aufgefallen: Clicke ich in der Taskleiste auf ein anderes Programm und dann zurück zu meiner Java-GUI-Anwendung und erneut auf “Messen” erscheint das ani-Gif wieder nicht. Erst beim zweiten Versuch!!!

Was könnte das jetzt noch sein?