JTable Anzeige überspringt Zwischenschritte bei Änderungen

CoderNoob

Mitglied
Hallo zusammen,
seit kurzer Zeit beschäftige ich mich etwas näher mit JTables und dabei bin ich jetzt auf ein Problem gestossen, dessen Lösung sich mir hartnäckig entzieht - obwohl es vermutlich etwas ganz einfaches ist...:oops:

Zu meinem Problem:
Als Übung habe ich eine eigene Umsetzung von Conways Game of Life geschrieben, die als Ausgabe eine JTable benutzt und in einem Fenster angezeigt wird. Das Fenster enthält ein Raster und einen Start-Button, durch Klicken auf die Zellen des Rasters kann man diese auf "lebend" stellen (sie ändern dann die Farbe) - ist man mit der Ausgangskonfiguration zufrieden kann man durch einen Klick auf den Start-Button die nächste Generation simulieren. Zu diesem Zweck wird durch den Klick auf den Start-Button die Methode simulator() aufgerufen, die den Code enthält um die nächste Generation zu berechnen. Das ganze funktioniert auch wunderbar - solange ich für jede Generation einmal auf den Start-Button klicke... Wenn ich durch den Start-Button aber eine Schleife auslöse, die die Methode simulator() z. B. 10x aufruft, wird nur der Zustand der Zellen nach 10 Generationen angezeigt... Die Anzeige überspringt dann also die Generationen dazwischen und springt direkt von der Ausgangskonfiguration auf die Konfiguration der letzten Generation.
Ich hoffe ich habe das Problem verständlich dargelegt & das mir jemand eine Tipp geben kann, warum es für die Anzeige einen Unterschied macht ob ich zehnmal per Button eine Methode aufrufe oder durch den Button die Methode automatisch zehnmal aufrufen lasse...???:L
 

André Uhres

Top Contributor
Der Animationsvorgang muss in einem eigenen Thread geschehen. Eine einfache Möglichkeit, diesen Thread zu verwirklichen, besteht darin, einen "javax.swing.Timer" zu benutzen.
 

CoderNoob

Mitglied
Ich wusste doch das ich irgend etwas ganz banales übersehe, bzw. falsch mache...:

Jedenfalls danke ich Euch beiden herzlich für Eure prompten Antworten - ich habe Andrés Rat mit dem Timer befolgt & jetzt funktioniert alles tadellos...:)
 

Neue Themen


Oben