Я Java разработчик с некоторым опытом в графическом программировании, но не очень опытный с самыми последними методами.
Я разрабатываю графическое приложение Java, используя Apache Netbeans IDE 11.2; Приложение включает в себя множество структурированных панелей (разделенные панели, элементы управления вкладками) и выполняет 2D-чертежи на некоторых из них, используя Swing и AWT.
Приложение работало до сих пор. После последних изменений я столкнулся со следующей проблемой:
Приложение правильно выполняет все рисунки (полилинии, прямоугольники и т. Д.) На главной панели, но внезапно панель очищается и исходный фон восстановлен, удалив все чертежи.
Отладка показывает, что очистка не выполняется ни одним оператором программы. Так что я полагаю, что это происходит за кулисами с помощью AWT или чего-то подобного.
Я понял, что Swing автоматически реализует двойную буферизацию (во всяком случае, я также вставил оператор setDoubleBuffered), поэтому я сделал рисунки прямо на экране без использования буфера. С другой стороны, до сих пор это работало идеально.
Мои вопросы:
Как я могу обнаружить событие, которое вызывает причины восстановление фона? И как я могу предотвратить это восстановление?
Решением может быть отключение двойной буферизации Swing и ее явное кодирование. Я не уверен в этом. Любой намек?
Большое спасибо за любые предложения.