2017-01-05 15 views
1

對Java很新,所以請在基本級別進行說明。試圖做一個蛇遊戲。在輸入遊戲背景代碼的過程中。計時器有問題。標有***的問題行啓動應用程序的Java計時器問題

package snake; 

import java.awt.Dimension; 
import java.awt.Toolkit; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

    import javax.swing.JFrame; 


public class Snake implements ActionListener { 

     public JFrame jframe; 
     public RenderPanel renderPanel;  
     public static Snake snake; 


     public Snake() { 
      Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); 
      jframe = new JFrame("Snake"); 
      jframe.setVisible(true); 
      jframe.setSize(800, 700); 
      jframe.setLocation(dim.width/2 - jframe.getWidth()/2, dim.height/2 - jframe.getHeight()/2); 
      jframe.add(renderPanel = new RenderPanel()); 
      jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


     } 

    public static void main (String []args) { 
      snake = new Snake(); 
     } 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
      renderPanel.repaint(); 

     } 
+1

問題區域的好標誌,但你錯過了告訴我們,問題是什麼。 – hotzst

+1

你能向我們解釋究竟是什麼造成了'問題'。在您的第一篇文章上的好標記榮譽! –

+0

第一個錯誤告訴我「構造函數Timer(int,Snake)未定義」 – steve97h

回答

0

您無法使用int和Snake對象初始化Timer。這不是由Timer類支持的。看看Java Api。構造函數摘要顯示Timer類的構造函數。

當你想要做的事在規定的時間後,請執行以下操作:

Timer timer = new Timer(); 
timer.schedule(new ReceiverTask(), 1000); 

1000以毫秒爲單位,直到該ReceiverTask的run方法延遲將被調用。

ReceiverTask應該是擴展TimeTask的類。例如:

class ReceiverTask extends TimerTask { 
    public void run() { 
     //update your Background her 
    } 
} 
+0

感謝您發送附件,非常感謝。我的意圖是背景改變顏色。但在這個時候,沒有定時器啓動應用程序將不會運行 – steve97h

+0

在哪個時間?幾個毫秒後? – GAlexMES

+0

在這一點上它根本不會打開。但我相信這個問題來自我的生產線32 *** snake = new Snake(); ***我在哪裏返回一個小箭頭說方法啓動是不明確的類型定時器 – steve97h