Wartezeit in do...while Schleife

evoleena

Erfahrenes Mitglied
Hallo Leute,

ich würde gerne eine Wartezeit in meine Do..while Schleife einbauen, damit man das repaint(); meines Panels auch sieht, aber leider klappt das nicht wie ich das gerne hätte.
Eigentlich ist die Schleife auch so gebaut,das sich am ende das panel repaintet, aber das sieht man nicht, anscheindend ist die Schleife so schnell durchlaufen, oder er macht es nicht.
Jedenfalls hab ichs jetzt hiermit versucht, aber wie gesagt ohne erfolg
Code:
try{
       wait(10000); 
}catch (Exception e) {}

hier auch mal die komplette Schleife
Code:
        do {            
            aendern = false;
            //Durchlaufe alle Cluster
            for (int i = 0; i < Clusters.size(); i++) {
                Cluster c = (Cluster) Clusters.get(i);
                int xcord = 0, ycord = 0, anzahl = 0;
                //Durchlaufe alle Datenpunkte und suche nur die raus, wo das Cluster = ClusterID ist
                for (int j = 0; j < Datenpunkte.size(); j++) {
                    Datenpunkt p = (Datenpunkt) Datenpunkte.get(j);
                    if (c.getclusterid() == p.getCluster().getclusterid()) {
                        xcord = xcord + p.getx();
                        ycord = ycord + p.gety();
                        anzahl++;
                    }
                }//END for(int j=0; j < Datenpunkte.size(); j++)                                
                try {
                    //Berechne den Mittelwert
                    xcord = xcord / anzahl;
                    ycord = ycord / anzahl;

                    if (xcord != c.getx()) {
                        if (ycord != c.gety()) {
                            c.sety(ycord);
                            c.setx(xcord);
                            //repaint();
                            aendern = true;
                        } else {
                            c.setx(xcord);
                            //repaint();
                            aendern = true;
                        }
                    } else {
                        if (ycord != c.gety()) {
                            c.sety(ycord);
                            //repaint();
                            aendern = true;
                        }
                    }
                } catch (ArithmeticException e) {
                }//END Try...Catch...
                    
            }//END for (int i=0 ; i < Clusters.size();i++)
            if (aendern == true) {
                iteration = Integer.parseInt(jLabel7.getText()) + 1;             
                jLabel7.setText(String.valueOf(iteration));
                repaint();
                    try{
                       wait(10000); // warte eine Secunde ...
                    }catch (Exception e) {}
                clustern();  
            }
        } while (aendern == true);
 

TheJadix

Erfahrenes Mitglied
Hallo,

also vorab wait(10000) sind 10000 millis also 10sec. !

Wenn man da keinen Effekt bemerkt dann liegt das Problem wohl wo anders.

Kanns du noch etwas mehr details zu derm Programm posten !

Gruß Jadix
 

Xandro

- Mistkerl -
Moin,

Anstatt mit wait() schonmal Thread.sleep() versucht?
Sollte Dir eigentlich den gewünschten Effekt liefern.

Gruß,
Xan