Я создал анимацию с javax.swing.timer
и, похоже, она работает нормально.Остановка «javax.swing.timer» не приостанавливает анимацию
Однако анимация продолжается вечно, поэтому я решил добавить метод timer.stop()
.
Вот небольшой кусок кода:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(xGrid, 200, 50, 50);
t.start();
}
public void actionPerformed(ActionEvent event) {
if (xGrid >= 350) {
t.stop();
}
xGrid++;
repaint();
}
Я ожидаю анимации, чтобы остановить, когда круг достигнет положения (350, 200).
Но это не так. Когда я запускаю программу, она просто выводит то же, что и раньше, при этом анимация немного медленнее.
Это довольно запутанно, может ли кто-нибудь помочь?
Любая помощь будет чрезвычайно оценена,
Просьба представить пример выполнения ([SSCCE] (http://sscce.org)), чтобы мы могли воспроизвести ваше поведение. –
Почему вы вызываете 'start()' в 'paintComponent()'? – trashgod