Мне нужно сделать простую анимацию в Java, но есть кое-что, чего я не понимаю в таймерах.
public class Gra extends JPanel{
Oval oval1;
Timer timer;
Gra(){
this.setBackground(Color.black);
oval1 = new Oval();
timer = new Timer(true);
timer.schedule(new TimerTask() {
public void run() {
oval1.movement();
SwingUtilities.invokeLater(() -> repaint());
}
}, 1);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(oval.kolor);
g.fillOval(oval.x, oval.y, 2*oval.r1, 2*oval.r2);
}
}
И тогда ничего не происходит. Овал создается и рисуется один раз, но он не двигается.