# Würfel zu schnell



## katerlisator (2. Jul 2014)

Also,
Ich schreibe gerade an einem Würfel-programm, dass eine Zufallszahl "errechnet" und die entsprechende Anzahl Punkte ausgibt. Um einen halbwegs realistischen Würfeleffekt hinzubekommen, habe ich das ganze in eine for-Schleife eingebaut. Das Problem ist allerdings, dass mein Computer schneller rechnet als der Bildschirm anzeigen kann --> der effekt ist dahin. Meine frage wäre nun, welche Möglichkeit es gibt, den computer "warten" zu lassen, bis der Würfel angezeigt wird

Hier mal die Methode:


```
public void button1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen   
    for ( i = 1; i<300; ++i) {
      int wurf = (int) (Math.random() * 6) + 1;
      
      if (wurf == 1) {
        jLabel1.setIcon(W1);
      } // end of if
      
      if (wurf == 2) {
        jLabel1.setIcon(W2);        
      } // end of if
      
      if (wurf == 3) {
        jLabel1.setIcon(W3);        
      } // end of if
      
      if (wurf == 4) {
        jLabel1.setIcon(W4);        
      } // end of if
      
      if (wurf == 5) {
        jLabel1.setIcon(W5);        
      } // end of if
      
      if (wurf == 6) {
        jLabel1.setIcon(W6);        
      } // end of if
      
    } 
    // end of for
    
  } // end of button1_ActionPerformed
```

Schon im Voraus herzlichen Dank für Lösungsvorschläge,
katerlisator


----------



## javampir (2. Jul 2014)

hi,
hast du es schon mal mit


```
try {
     Thread.sleep(1000);
} catch (Exception ex) {}
```

versucht? So sollte er eine Sekunde lang "schlafen", bevor er weitermacht.
javampir


----------



## katerlisator (3. Jul 2014)

Der Tipp war nicht schlecht *aber* die einzelnen Würfelseiten werden immer noch nicht angezeigt;( Es dauert jetzt bloß länger, bis die letzte Augenzahl angezeigt wird. Das label bleibt zwischendurch leer


----------



## Thallius (3. Jul 2014)

Das ist vollkommen normal. Der Thread welcher das UI aktualisiert kommt ja nicht dran wenn du die ganze Zeit in einer Schleife steckst. Das Ganze geht nur über Threading. Je nachdem was für ein UI Du benutzt gibt es da verschiedenste Lösungsansätze.

Was Du da erstellen willist ist im Prinzip das gleiche wie ein ProcessIndicator. Du willst, während du was rechnest das UI aktualisieren. Wenn du mal nach ProgressIndicator googlest wirst du viele Beispiele finden die Du dann auf Deine Anwendung umbiegen must.

Wenn du mit Swing arbeitest kannst du gleich nach SwingWorker suchen.

Gruß

Claus


----------



## Topfpflanze (3. Jul 2014)

Alternativ kannst du einen Timer bemutzen


----------



## turtle (5. Jul 2014)

Oder meinen Blog-Eintrag lesen


----------

