2017-02-17 1 views
-4

Ich schreibe Code, der ein Token Stück um ein Monopoly-Board basierend auf bestimmten Koordinaten bewegt. Derzeit druckt es es in jedem Quadrat, aber ich versuche, es in jedem Quadrat zu drucken, mit einem Timer, so dass Sie jeden quadratischen Druck sehen können und wenn es in einem Quadrat druckt, entfernt es den Druck im vorherigen Quadrat, so das Token kann nur in einem Quadrat zu einem Zeitpunkt sein. Dies ist der Code, den ich habe bisher:Hinzufügen eines Timers zu einer for-Schleife

for(int g=0;g<10;g++) 
     { 
      JLabel redtoken = new JLabel(new ImageIcon ("src/TokenRed.png")); 
      redtoken.setBounds(x[g],y[g], 10, 10); // Size and position set 
      LPane.add(redtoken, new Integer(3)); // Red token set as layer 3 


     } 

Test, um eine Auswahl von Koordinaten: (Token ist Red Square)

enter image description here

+0

Mögliche Duplikat [Wie einen Timer in Java einstellen] (http://stackoverflow.com/questions/4044726/how-to-set-a-timer-in- Java) – DaveOz

+0

Dies ist kein Duplikat. Diese Frage bezieht sich auch auf das Entfernen des Drucks auf einem vorherigen Quadrat. –

+0

Sie benötigen keinen Timer, Sie müssen alle vorherigen Token entfernen, bevor Sie einen neuen hinzufügen. –

Antwort

1

Wenn ich richtig verstehe, Sie wollen ein, um zu sehen roter Token springt von Quadrat zu Quadrat. Ich schlage vor, so etwas wie das:

Object lastPrinted = null; 
for(int g=0;g<10;g++) 
{ 
    if(alreadyPrinted != null){ 
     deleteToken(alreadyPrinted); 
    } 
    printNewToken(g) 
    try { 
     Thread.sleep(300); 
    } catch (InterruptedException e) { 
     Thread.currentThread().interrupt(); 
     System.err.println(e); 
    } 

} 
+0

Danke dafür, aber ich bekomme einen Fehler "Unhandled Ausnahme-Typ InterruptedException" auf 'Thread.sleep (300);' –

+0

Das Programm dauert derzeit ein paar Sekunden zu laden und dann erscheint das Token auf dem letzten Quadrat im Array Es öffnet sich –

+0

Das bedeutet, dass Sie nur das Token nach der Ausführung der Methode drucken. Sie müssen dann die Druckmethode durchlaufen. –

Verwandte Themen