Использование JFrame # setIgnoreRepaint, чтобы избежать перерисовки автоматически? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть Frame extends JFrame в моем проекте, который является просто фреймом, содержащим объект Controller, который обновляется во время выполнения программы и используется для обновления экрана.Я перебрал JFrame#paintComponent(Graphics g), поэтому, когда я звоню JFrame#repaint, мой Frame перерисовывается.Я знаю, что мой фрейм будет перекрашен не только при вызове его метода перерисовки, но и при изменении размера, установите видимым (плюс еще один, я забыл?).Размер моей рамки не будет изменяться, но будет минимальным.И проблема в том, что я могу обеспечить стабильность моего Controller объекта только во время моих прямых repaint вызовов.Поэтому я искал и обнаружил JFrame#setIgnoreRepaint, но я не уверен, что полностью понимаю его определение javadoc:

Устанавливает, следует ли игнорировать сообщения рисования, полученные из операционной системы.Это не влияет на события рисования, генерируемые программным обеспечением AWT, если они не являются немедленным ответом на сообщение рисования на уровне ОС.

Как вы думаете, я могу его использовать?Или это опасно ?

Я повторяю свою проблему: мне нужно убедиться, что paintComponent / repaint вызывается только автоматически, и если я могу использовать JFrame#setIgnoreRepaint для достижения этого.Кроме того, это нормально, чтобы никогда не позволять переписывать звонки происходят автоматически?

РЕДАКТИРОВАТЬ: Я продолжал поиск, и я нашел тему (я больше не могу ее найти, извините), где кто-то говорил о RepaintManager#markCompletlyClean, это потенциальное решение моей проблемы?

...