Repaint und ActionListener

Hallo!

Ich versuche mich gerade an meinem ersten Java-Programm mit einer graphischen Oberfläche und auch gleich das erste Problem :wink:

Wie kann ich denn verhindern, dass repaint() wartet und nicht gleich sofort „repaintet“?

Also ich versuche ein Sortierverfahren graphisch darzustellen. Mein Wunsch wär’ es, dass ich jeden Schritt mittels Strichen nachvollziehbar zu machen (mit delay-Funktionen usw.). Das Problem ist, dass repaint() (so im Internet gelesen und auch gemerkt) immer bis zum Ende der letzten Schleife wartet und somit nur den letzten Zustand ausgibt.

Gibt es eine Alternative zu repaint()? Ich habe was von Threads gelesen, wie könnte man das umsetzen?

Mir geht es nur darum von einem „public void actionPerformed (ActionEvent ae)“ heraus die Ausgabe zu aktualisieren. - Kann mir da jemand helfen?

Würde mich über eine Antwort freuen :smile:
lg!

(PS: Ist schon spät … hoffe das ich mein Problem noch halbwegs vernünftig beschrieben habe :smile:)

Hallo!

Ich habs schon mit Threads geschafft :smile:

lg!

repaintStep() … ?
Bin nicht sicher, ob ich Dein Problem richtig verstanden hab’ … Wo genau taucht denn der Fehler auf?
…Bei mir war es so: mein ‚‚repaint()‘‘ hat fleißig repainted, obwohl ich es so nicht wollte … es ergab sich eine Dauerschleife … ‚‚repaint()‘‘ hat überhaupt nicht mehr aufgehört… ich mußte das Programm ‚kritisch‘ (per ‚‚Escape‘‘) beenden.
Die Lösung war ein ‚‚repaintStep()‘‘, ein ‚Malschritt‘, der mit jedem (Mal~)Schritt neu aufgerufen wird, sodaß die Kontrolle über den Programmverlauf behlten wird …
Du rufst also nicht ein endloses ‚‚repaint()‘‘ auf, das dann (unkontrolliert) ‚macht, was es will, (solange gepainted werden kann)‘; sondern Du rufst in jedem Programm-Durchlauf ‚‚paintStep()‘‘ auf, das dann - wenn alle ‚äußerlichen‘ Bedingungen erfüllt sind - den nächsten Schritt vollführt.
(irgendswie sowas?)