2017-02-17 21 views
-4

我正在編寫代碼,它根據特定的座標在獨佔板周圍移動一個令牌塊。目前,它會在每個方塊中打印它,但我試圖讓它在每個方塊中打印,並帶有一個計時器,以便您可以看到每個方塊打印以及在一個方塊中進行打印時,它將刪除前一個方塊中的打印,令牌一次只能在一個方格中。這是我的代碼至今:使用選擇的座標給for循環添加一個定時器

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 


     } 

測試:(令牌是紅坊)

enter image description here

+0

的可能的複製[如何設置在Java定時器(http://stackoverflow.com/questions/4044726/how-to-set-a-timer-in- java) – DaveOz

+0

這不是重複的。這個問題也涉及去除前一個方塊上的打印。 –

+0

您不需要計時器,您需要在添加新的令牌之前刪除任何以前的令牌。 –

回答

1

如果我理解正確的話,你想看到一個紅色標記從正方形跳到正方形。 我建議這樣的事情:

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

感謝這一點,但我得到一個錯誤''未處理的異常類型InterruptedException'Thread.sleep(300);' –

+0

程序當前需要幾秒鐘加載,然後令牌出現在數組的最後一個方形它會打開 –

+0

這意味着您只能在執行該方法後打印該令牌。然後您需要循環打印方法。 –