Я делаю 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 для этого, любые идеи о том, как действовать?
Спасибо за чтение.
Это вполне приемлемо для спящего режима() в нити изменения изображения, если этот поток не имеет ничего лучшего, и пока этот поток не является рабочим потоком Swing, который необходимо оставить без работы:) –
@Carl - true :) Большинство документов и статей по Java-анимации предпочитают класс Timer. Вот хорошая статья Sun, в которой рассказывается об обоих подходах к анимации: http://java.sun.com/products/jfc/tsc/articles/timer/ (поиск «сна», чтобы увидеть некоторые из сравнений). –
Это сработало, спасибо большое! –