Я хочу выполнить анимацию в апплете каждый раз, когда я нажимаю кнопку. В первый раз, когда я нажимаю кнопку, все работает нормально. Но во второй раз скорость анимации возрастает. В третий раз скорость анимации увеличивается немного больше, а четвертая и пятая, ...Таймер увеличивается скорость каждый раз, когда я нажимаю кнопку
Я не знаю, что происходит с таймером. Как я могу это исправить?
В апплета я использую этот код:
JButton btnIniciar = new JButton("Iniciar");
btnIniciar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Timer timer = new Timer(50, new ActionListener(){
public void actionPerformed(ActionEvent e) {
//I have a list of packages to animate
for (Package p: listaPaquetes){
p.animate();
panel.repaint();
}
}
});
timer.start();
}
И это код перекрашивать в панели:
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//I use the same list of the applet
for (Package p: listaPaquetes){
//Paint the package
p.paintPackage(g);
}
}
This is how it works, the animation sends packages from left to right
Решено. Я не знал, где положить таймер, поэтому каждый раз, когда я нажимаю кнопку, я также останавливаю таймер, кроме первого раза. – carlbron