Java - Gleichzeitigkeitsproblem?!?

Hallo ihr Java-Spezialisten!
Also ich habe folgendes Problem:
Ich soll für meinen Lehrer in Java ein Programm schreiben, dass zeigt, wie verschiedene Sortieralgorithmen arbeiten, sprich:
Ich zeichne in ein Koordinatensystem die Punkte x/y wobei x die Feldindizes sind und y die eigentlichen Werte. Am Anfang ist also Wirrwar und dann kommt am Ende ein „linearer“ Graph heraus. Das funktioniert auch soweit, dass der Anfang und das Ende angezeigt werden. Allerdings werden die Zwischenschritte nicht angezeigt. Ich benutze ein Canvas mit der Methode repaint() in einem Frame (kein JFrame) und mit AWT. Quelltext kann ich nicht wirklich posten, es sind über 1000 Zeilen.
Ich habe schon alles mögliche mit sleep() und wie auch immer probiert es werden immer nur Anfang und Ende aber keine Zwischenschritte angezeigt, auch wenn ich zwichendurch 1 Sekunde warten lasse, bevor er weitermacht. Wie kann ich das ändern? Was mache ich falsch?
Vielen Dank für eure Hilfe,
Häuptling JAVA

Hallo Häuptling :wink:

eine Möglichkeit deinen Quelltext dennoch zu zeigen wäre eine der vielen Paste-Seiten (z.B. www.pastebin.com )

Denn so ins Blaue zu raten macht vermutlich nicht so viel Sinn :wink:

Viele Grüße
Thomas

Also ich versuche es gerade mit threads… ich zeig sie euch mal:

datei zeichenThread.java:
import java.awt.*;
import java.awt.event.*;
class zeichenThread extends Thread {

public zeichenThread() {

}

public void run() {
try {
sleep(10);
} catch (InterruptedException e) {
}
Sortieren.zeichnen();
}
}

auszug aus datei Sortieren:

static leinwand leinwand1=new leinwand();

static void zeichnen(){
leinwand1.repaint();
}

und z.B.:

public void Bubble() {
zaehler_zurueck();

for (int i = 0; i element[j + 1]) {
int hilfe = element[j];

element[j] = element[j + 1];
element[j + 1] = hilfe;
leinwand1.xy[j] = element[j];
leinwand1.xy[j+1]=element[j+1];
AnzB += 2;

}

AnzV += 1;

zeichne.start();
}
}

Sortier_Ende(„Bubble-Sort“);

return;
}

da krieg ich auch ne fehlermeldung bei dem thread… was ist los???