# JPanel Inhalt aktualisiert nach Thread.sleep nicht



## Nulpe12345 (24. Dez 2012)

Folgende Methode soll in meinem Spiel Stück für Stück den Lebensbalken (hier als farbiges JTextPane dargestellt) bis auf den neuen Wert reduzieren. Leider aktualisiert die Funktion die Breite des Lebensbalken erst nachdem die ganze Funktion abgelaufen ist und nicht alle 50ms...



```
public void lebensbalkenHPAbziehenLangsam(JTextPane lebensbalken, double lebenAlt, double lebenNeu) {
		final int intervall = 50; //Anzahl der Schritte
		Double stueck = (lebenAlt - lebenNeu) / new Double(intervall); //Breitenabzug pro Schritt
		for(int i=0;i<intervall;i++) {
			lebensbalken.setBounds(lebensbalken.getX(), lebensbalken.getY(), lebensbalken.getWidth() - stueck.intValue() , lebensbalken.getHeight()); //Zieht von der alten Breiten "stueck" ab
			try {
				Thread.sleep(50);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
```


----------



## TKausL (24. Dez 2012)

Ich nehme an deine Methode wird vom EDT ausgeführt. Starte einen eigenen Thread dafür und gib die setBounds an den EDT weiter.


----------



## asd12AIIA122 (2. Jan 2013)

Ah vielen Dank. Lasse jetzt den Main-Thread an gewollter Stelle so lange warten, bis der EDT einen boolean verändert und ändere dann den Balken. Vielleicht nicht die eleganteste Lösung, aber erstmal ausreichend


----------

