Java. Не срабатывает .repaint()
Пытаюсь сделать простую анимацию. Использую в цикле Thread.sleep(50) и panel.repaint() для перерисовке графической панели. Но за весь цикл панель не разу не перерисовывается. В других частях программы всё нормально работает. Что может быть не так? И есть ли еще какой то способ создать анимацию? Таймер не помог.
Java изучаю совсем недавно поэтому многого просто не знаю. Буду благодарен за любую помощь.
Thread.sleep(50), выполняется внутри отдельного потока, в нем же вызывается перерисовка. (Пытался вызывать перерисовку и в других потоках, точно также, не разу не сработала.)
Проблему решил следующим образом:
Убрал цикл и вместо него поставил проверку boolean значения в отдельном потоке (который меняет изображение) и в методе paintComponent у панели.
Сделал кнопку которая переключает это значение.
Теперь каждый раз когда панель перерисовывается, она проверяет включена ли анимация и если это так вызывает метод потока который меняет изображение и снова перерисовывает панель. Так происходит пока не будет нажата кнопка которая изменит boolean переменную на false.
P.S. Знаю что возможно решение не самое практичное, но работает.