Animation durch Button auslösen

Status
Nicht offen für weitere Antworten.

Butterfly

Mitglied
Hallo,

ich steh hier grade vor einem großen Problem, es geht um folgendes:
Ich will ein Programm schreiben, mit dem man binäre Bäume darstellen kann.
Dazu habe ich ein JPanel als Zeichenfläche, auf dem ich den Baum per paintComponent zeichne und auf einem anderen JPanel verschiedene Buttons, um Knoten hinzuzufügen, zu entfernen etc.
Bisher funktioniert das auch super, mein Baum wird ohne Probleme gezeichnet.
Jetzt wollte ich mich daran machen, dass ganze zu animieren. Drückt der Benutzer z.B. "Search" soll per Animation die Navigierung durch den Baum gezeigt werden.

Jetzt kommt mein Problem:
Wie starte ich Animationen per JButton Knopfdruch bzw. per ActionListener-Event?
Ich dachte mir, ich rufe dazu einfach auf meiner Zeichenflächen-Klasse eine Methode auf, die die Animation ausführt. Also per Schleife die grafischen Elemente neu setzen und dann repaint aufrufen, solange bis die Animation zu Ende sein soll. Das Problem ist, das repaint() nicht dann ausgeführt wird, wenn ich es will.
Repaint() wird erst dann aufgerufen, wenn meine Methode zum Animieren durchgelaufen ist und somit die Animation auch schon längst vorbei ist. Nach der API liegt das wohl daran, dass repaint() erst ausgeführt wird, wenn alle aktuellen Events behandelt wurden. Da die Animationsmethode ja von einem Button-Event aufgerufen wurde, also hier erst, wenn die Methode vorbei ist.

Ich hatte dann probiert, die Animation direkt in der repaint()-Methode zu konstruieren, indem ich z.B. eine ArrayList mit den nötigen Infos für die Animation erstelle und auf diese dann zugegriffen wird. Leider zeichnet repaint() aber erst dann tatsächlich neu, wenn schon alles ausgeführt wurde.

Ich bin so langsam am verzweifeln, vermutlich ist das ein ganz häufiges Problem, aber ich konnte per Suche & Google nichts finden. Es wäre echt super, wenn mir da jemand helfen könnte.
 

Butterfly

Mitglied
Sehe ich das richtig, dass der Timer im angegebenen Zeitintervall immer wieder die actionPerformed-Methode der TimerAnimation-Klasse aufruft?

In meinem Fall würde ich das also folgendermaßen machen:
-> Mit meiner Klasse die actionPerformed Methode von ActionListener implementieren.
-> Wird der Button gedrückt, erstelle ich einen Timer und lasse ihn laufen.
-> In der actionPerformed-Methode setzte ich die Animationsdaten neu und rufe repaint() auf.
-> Damit der Timer auch irgendwann aufhört zu laufen (die Animation soll ja nicht ewig rennen), überprüfe ich in meiner actionPerformed-Methode, ob die Animation beendet ist und rufe dann stop() auf dem Timer auf.

Würde das prinzipiell so funktionieren?

/Edit:
Ich habs jetzt trotz der späten Stunde selbst noch ausprobiert - und siehe da, es funktioniert genauso, wie ich es will. Super! Dankeschön!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Minecraft Casino EinarmigerBandit Animation Spiele- und Multimedia-Programmierung 5
B Animation Spiele- und Multimedia-Programmierung 4
Meeresgott Morph Targets und Skeleton Animation Spiele- und Multimedia-Programmierung 2
J (Libgdx) animation nur einmal in einem Event aufrufen Spiele- und Multimedia-Programmierung 1
N Animation funktioniert icht wie sie soll Spiele- und Multimedia-Programmierung 10
K Animation fliegendes JLabel Spiele- und Multimedia-Programmierung 1
R [LWJGL] Skeletal Animation Spiele- und Multimedia-Programmierung 5
F [LWJGL] Skeletal Animation 3D Spiele- und Multimedia-Programmierung 1
R Animation mit Interpolator starten wenn Key pressed Spiele- und Multimedia-Programmierung 0
kaoZ Animation in eigenen Thread auslagern..... Spiele- und Multimedia-Programmierung 1
S Animation zieht "Spur" hinter sich her Spiele- und Multimedia-Programmierung 2
H [ANIMATION] Hintergrundbild nur einmal zeichnen Spiele- und Multimedia-Programmierung 3
A LwJGL - Animation Stockt Spiele- und Multimedia-Programmierung 5
0 Sprung Animation Spiele- und Multimedia-Programmierung 10
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
C Java3D Interaktion während Animation Spiele- und Multimedia-Programmierung 3
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
baddestpoet Animation startet bei gedrückter Taste immer wieder von vorn Spiele- und Multimedia-Programmierung 12
M Animation Spiele- und Multimedia-Programmierung 5
aze Animation an TransformGroup anpassen Spiele- und Multimedia-Programmierung 5
S Animation mit repaint Spiele- und Multimedia-Programmierung 2
K "Animation" funktioniert nur bedingt. Spiele- und Multimedia-Programmierung 8
W Flüssige Animation Spiele- und Multimedia-Programmierung 8
J Animation hinter transparentem Bild auf der GlassPane Spiele- und Multimedia-Programmierung 6
D Problem mit Animation bei Little Fighter Spiele- und Multimedia-Programmierung 5
R Double Buffering in Animation ich bekomms einfach nicht hin? Spiele- und Multimedia-Programmierung 3
G GL4Java Animation erstellen Spiele- und Multimedia-Programmierung 2
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
S 3ds animation einbinden Spiele- und Multimedia-Programmierung 3
A Animation mit jmonkeyengine Spiele- und Multimedia-Programmierung 10
S Gif Animation aus Prog heraus erstellen Spiele- und Multimedia-Programmierung 11
P Zahlenwert durch Methode ersetzen Spiele- und Multimedia-Programmierung 1
D Iterieren durch einen Ordner mit Audiodateien und verketten eine andere Audiodatei Spiele- und Multimedia-Programmierung 17
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
R Durch String Platform Game erstellen Spiele- und Multimedia-Programmierung 8
lord239123 JMonkey Schatten werden durch Terrain hindurch angezeigt Spiele- und Multimedia-Programmierung 1
R Mp3 Rating (POPM) durch JAudioTagger? Spiele- und Multimedia-Programmierung 2
M Objekte verschwinden durch Explosion Spiele- und Multimedia-Programmierung 2
B j3d Kamera Rotation durch Tastendruck Spiele- und Multimedia-Programmierung 12
I Framerate-Einbrüche durch Synchronisation Spiele- und Multimedia-Programmierung 12
E [JAVA3D] Schattenstrich durch die Szene Spiele- und Multimedia-Programmierung 4
N Zufallserzeugung durch KI Spiele- und Multimedia-Programmierung 23
H Grafik verschwindet durch Größenveränderung von GridBag Spiele- und Multimedia-Programmierung 5
S Hilfe: Ich sehe durch die ganze Api's nicht mehr durch! Spiele- und Multimedia-Programmierung 15
Fu3L Extreme Prozessorauslastung durch Hintergrundbild Spiele- und Multimedia-Programmierung 5
D Polygonsize durch das umliegende Reckteck verändern inJava2D Spiele- und Multimedia-Programmierung 6
S Fehlerhafte Darstellung durch Transparenz? Spiele- und Multimedia-Programmierung 8
A durch Objekte hindurchzoomen Spiele- und Multimedia-Programmierung 2
masta // thomas Kollisionsabfrage - inspiriert durch "pixelgenaue Kolli Spiele- und Multimedia-Programmierung 13
E Durch Klick auf den JButton will ich die Farbe ändern? Spiele- und Multimedia-Programmierung 8
R Enorme Leistungseinbußen durch Alphakanäle Spiele- und Multimedia-Programmierung 3
R Memory - Nicht alle Button lassen sich aktivieren? Spiele- und Multimedia-Programmierung 1
dummycoders Android Studio - Button ändert Farbe erst nach Delay? Spiele- und Multimedia-Programmierung 5
H Make a cooldown on a button? Spiele- und Multimedia-Programmierung 1
H Change color on button event Spiele- und Multimedia-Programmierung 2
G [LibGDX] Button Klick Probleme Spiele- und Multimedia-Programmierung 1
J mehrere Listener für einen Button / Label Spiele- und Multimedia-Programmierung 1
X LWJGL - Anklick baren Button erstellen aber wie? Spiele- und Multimedia-Programmierung 6
S Button soll verschiedene panel zufällig durchschalten Spiele- und Multimedia-Programmierung 14
M Mathetrainer - Reset Button funktioniert nicht! Spiele- und Multimedia-Programmierung 8
A Button ausblenden Spiele- und Multimedia-Programmierung 3
P JOGL Button-klick-Problem Spiele- und Multimedia-Programmierung 2
B Problem : Button-Klick bewirkt nichts Spiele- und Multimedia-Programmierung 4
K Button eigenschaften bearbeiten Spiele- und Multimedia-Programmierung 20
K Würfel vergrößern und verkleinern per Button Spiele- und Multimedia-Programmierung 7
G Warten auf Button-Aktion in Schleife? Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben