Циклическая перекраска

У меня довольно большая проблема. Я пишу графический интерфейс со следующей структурой:

MainFrame (MainPanel (JScrollPane (ContentPanel (Content1,Content2, Content3))))

Существует также стеклянная панель над основным блоком. В классе GlassPane есть таймер, который срабатывает примерно каждые 100 мс.

Этот таймер обновляет значение JSlider для Content1. JSlider также имеет прослушиватель изменений, который передает текущую X-координату большого пальца в GlassPane. Эти координаты используются для рисования линии каждый тик, если она изменилась. Эта строка переходит Content1,Content2 и Content3.

В настоящее время я пытаюсь обновить это содержимое с помощью this.repaint(), MainPanel.repaint(), this.repaint(Rectangle), MainPanel.repaint(Rectangle).

К сожалению, все эти методы (даже перерисовка (Rectangle) o0) вызывают методы paintComponent для Content1,Content2 и Content3, что каким-то образом создает циклическое перерисовывание. Я не могу объяснить этот цикл и уже довольно отчаялся. Я был бы очень благодарен за любую помощь или предложение.

Я бы тоже хотел дать вам немного кода, но его так много. И я действительно не знаю, что было бы полезно.

Привет, кукуруза

1 ответ

Решение

Достаточно сделать this.repaint() в JFrame перерисовывает все объекты (компоненты), которые находятся в JFrame.

Другие вопросы по тегам