Я рисую на экране кучу примитивов, используя Java2D, и у меня много разрывов / мерцаний.
Как я могу включить / использовать двойную буферизацию, чтобы она выводила ее за пределы экрана, а затем показывала все?
Я рисую на экране кучу примитивов, используя Java2D, и у меня много разрывов / мерцаний.
Как я могу включить / использовать двойную буферизацию, чтобы она выводила ее за пределы экрана, а затем показывала все?
Ознакомьтесь с этим руководством по двойной буферизации: http://gpwiki.org/index.php/Java:Tutorials:Double_Buffering
Несколько советов по эффективному использованию буферизации в качестве просмотра
и некоторые программы тестирования доступны
1) Вы создаете экземпляр BufferedImage. Для максимальной производительности вы должны убедиться, что Буферизованное изображение использует ту же модель, что и экран, на который вы выполняете рендеринг.
Проверьте это, чтобы узнать, как создать BufferedImage, используя Graphics2D, переданный методу рисования любого компонента (существует много способов создания буферизованных изображений, это связывает несколько ...)
[http://www.exampledepot.com/egs/java.awt.image/CreateBuf.html][1]
2) Вы получаете Graphics [getGraphics ()], связанный с буферизованным изображением, преобразуете его в Graphics2D, если вам нужно, и визуализируете свои примитивы в буферизованное изображение, вызывая команды на этом графическом объекте (также можете передать этот графический объект компонентам в нарисуйте себя на вашем буферизованном изображении).
3) Вы рисуете буферизованное изображение в свой компонент, переопределяя его метод рисования и вызывая вариант drawImage () для аргумента Graphics2D, переданного компоненту.
lmk, если вам нужен образец кода ...