我正在製作一個JApplet並陷入動畫問題。如何用Swing製作動畫?
這裏是我的代碼:
this.sprite.setBounds(0,0,20,17);
this.sprite.setIcon(this.rangerDown);
for(int i = 0; i< 16;i++)
{
this.sprite.repaint();
this.sprite.setLocation(this.sprite.getX(), this.sprite.getY()+10);
try{
Thread.currentThread().sleep(100);
}catch(InterruptedException e){
}
}
有了這個,沒有動畫:在循環過程沒有任何反應,重繪()方法似乎一旦精靈停止移動只能採取行動。
我想只使用Swing爲此,如何進行任何想法?
感謝您的閱讀。
在圖像更改線程中sleep()是完全可以接受的,只要該線程沒有更好的操作,只要該線程不是Swing工作線程,它必須保持不受干擾地工作: ) – 2009-11-05 19:37:14
@Carl - true :)大多數關於Java動畫的文檔和文章都喜歡Timer類。以下是一篇很好的Sun文章,講述了動畫的兩種方法:http://java.sun.com/products/jfc/tsc/articles/timer/(搜索「睡眠」以查看一些比較結果)。 – 2009-11-05 19:44:41
它的工作,非常感謝! – 2009-11-05 20:46:15