2011-03-13 48 views
0

包含BufferedImage的小應用程序將動畫使用Timer類。一切正常,但並不像預期的那樣。使用Timer類的簡單動畫緩慢

有時候系統很難畫出動畫,好像它正在耗盡系統資源(特別是在安裝JRE之後),這會使動畫以非常低的速度重繪。其他時候它按預期工作。

這是什麼原因造成的?

謝謝!

+5

請問您可以發佈一些代碼。 – cMinor 2011-03-13 02:02:07

+2

'java.util.Timer'或'javax.swing.Timer'? – trashgod 2011-03-13 02:19:36

+0

「可能導致這種情況的原因是什麼?」 - 你的代碼有問題。如果你想了解更多細節,你將不得不自己提供更多細節。 – 2011-03-13 03:43:26

回答

0

對不起大家..我的壞!

我使用的類是javax.swing.Timer!

下面是代碼的一部分(定時器實現 - 而不是方法計時器調用):

Timer t = new javax.swing.Timer(10, new ActionListener(){ 
    public void actionPerformed(ActionEvent ev){ 

     //This little if/step statement actually decides if 
     //the ellipses I have on screen will be colored all together 
     //or step by step 

     if(app.flagStep == false){ 
      for (int i = 0; i<list.size(); i++){ 
       drawBuffer(i); 
      } 
     } 
     else{ 
      if(app.stepBut.isEnabled()){ 
       app.stepBut.setEnabled(false); 
      } 
      drawBuffer(app.myStep); 
     } 


    } 
}); 
1

切換到java.util.Timer中,javax.swing.Timer中似乎更適合每分鐘或每秒調用一次的操作,而不是java.util.Timer,這比每秒數十次調用要好得多。