Циклическая перекраска
У меня довольно большая проблема. Я пишу графический интерфейс со следующей структурой:
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.