Huhu.... es bin schon wieder ich mit einem neuen Problem :shinner:
Ich hoffe ihr könnt mir helfen, ich komm da einfach nicht drauf Oo
Ich habe eine Schleife, die bis 5 zählt und in kurzen Abständen eine Ausgabe ausgibt. Jeder Schritt der hochgezählt wird, soll auch in der ProgressBar upgedatet werden. Dazu muss ich einen neuen Thread machen, damit das GUI nicht blockiert, also schreibe ich wie folgt:
Code
// das ist die zählfunktion
for(int i=0;i<5;i++)
{
try
{
Thread.sleep(500);// damit das zählen langsamer vonstatten geht
}
catch(Exception excelsior){}
System.out.println("alle meine entchen " + i);
// Starte den neuen thread1 und übergebe
// 1. die Zahl die grad dran ist in der Schleife
// 2. die Gesamtgröße der Schleife (indemfall aber nur 4, weil er ja von 0-4 zählt)
new Thread(new thread1(i,4)).start();
}
//TODO Threadklasse!
public static class thread1 implements Runnable
{
int arr = 0;
int gesamt = 0;
// bekomme vom Threadstarter die zahl die grad dran ist und das Maximum
public thread1(int arraygroesse, int gesamtgr)
{
arr = arraygroesse;
gesamt = gesamtgr;
progress.setMaximum(gesamt); // damit steht nachher in der PG 100%, wenn fertig ist
}
public void run()
{
progress.setValue(arr); //Set value
progress.repaint(); //Refresh graphics
}
}
}
Alles anzeigen
Irgendwas mache ich falsch in den wenigen Zeilen Codes.. das GUI blockiert und am Schluss schreibt er mir 100% an... obwohl ich eigentlich gleichzeitig einen anderen Thread laufen lasse... Weiss jemand wo da der Hund begraben ist? :confused: