Hilfe beim Label animieren

Java_Noob_

Neues Mitglied
Hallo Leute,

ich versuche ein Label zu animieren und komme irgendwie nicht weiter...
In meinem Projekt sollen beim betätigen eines Buttons, 4 Labels ihren Text einige male ändern. Dies klappt auch soweit, allerdings hätte ich gerne, dass die Änderungen sichtbar sind, sprich der Text soll sich zu Beispiel alle 0.5 Sek ändern und nicht sofort, wie es gerade der Fall ist.
Das wäre mein Code soweit:
for (int i = 0; i < 5; i++)
{
Name1.setText(Namen[0]);
Name2.setText(Namen[1]);
Name3.setText(Namen[2]);
Name4.setText(Namen[3]);

Name1.setText(Namen[3]);
Name2.setText(Namen[0]);
Name3.setText(Namen[1]);
Name4.setText(Namen[2]);

Name1.setText(Namen[2]);
Name2.setText(Namen[3]);
Name3.setText(Namen[0]);
Name4.setText(Namen[1]);

Name1.setText(Namen[1]);
Name2.setText(Namen[2]);
Name3.setText(Namen[3]);
Name4.setText(Namen[0]);
}

Würde mich freuen wenn Ihr mir da helfen könntet.

Vielen Dank und Grüße

Java_Noob
 
Dazu kannst Du z.B. einen Timer verwenden, der in den gewünschten Zeiten aktiv wird und dann den Namen umsetzt.

Je nachdem, welche UI Technologie Du verwendest, kannst Du einen entsprechenden Timer verwenden. Dies hat den Vorteil, dass es direkt im EDT (Event Dispatch Thread) läuft. Du kannst aber auch direkt java.util.Timer verwenden um dann mittels SwingUtilities.invokeLater (swing) oder Platform.runLater (javaFX) zu arbeiten. Letzteres bietet sich an, wenn mehr gemacht werden müsste als nur die UI zu aktualisieren, was aber bei Dir nicht der Fall ist.

Hintergrund dabei ist generell, dass man im EDT nichts macht, was etwas Zeit benötigt. Der EDT hat u.a. auch die Aufgabe, das Fenster neu zu malen (bei Bedarf), daher kann man den halt nicht einfach so blockieren.
 

Zurück
Oben