# Animation mit repaint



## sasbob (19. Feb 2009)

Hallo, 

ich versuche eine Animation auf meinem Panel zu erreichen. Mal kurz zum Aufbau meines Programms. Meine Hauptklasse erzeugt einen Frame mit zwei Panels drin. Diese beiden Panels (Unterklasse von JPanel) sind nach dem Observer Entwurfsmuster Beobachter. Dargestellt werden Kreise, die ich in Bewegung setzen möchte. Dazu ändere ich nach dem Mausklick die Position des Kreises schrittweise in einer Schleife und schicke bei jedem Schleifendurchlauf ein Event ab. Das landet dann in meinem DrawPanel:




> public void update(BubbleSortEvent e) {
> System.err.println("BubbleEvent");
> repaint(leftCornerX, leftCornerY, width, height);
> try {
> ...



Das Errorhandling wird natürlich ncoh verbessert . Auf jeden Fall ruft er im Abstand von 500ms die update Funktion auf, doch repaint erst nach dem Ablauf der Schleife (das heißt, wenn die Animation beendet is). Wo liegt der Fehler?


----------



## Geeeee (19. Feb 2009)

Die AWT-EventQueue zeigt erst nach vollständiger Abarbeitung die Änderungen an. Du musst das schrittweise "malen" in einen Thread auslagern und von diesem Thread aus, dann einfach z.B. update(bubbleSortEvent) aufrufen.


----------



## sasbob (19. Feb 2009)

Danke, für die schnelle Antwort. Ok, dann werde ich mich mal ransetzen. Danke Dir!


----------

