Würfel zu schnell

katerlisator

Neues Mitglied
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:

Java:
 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

Bekanntes Mitglied
hi,
hast du es schon mal mit

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

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

katerlisator

Neues Mitglied
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

Top Contributor
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
 

Ähnliche Java Themen

Neue Themen


Oben