Как мне сделать двойную буферизацию в Java2D?

Я рисую на экране кучу примитивов, используя Java2D, и у меня много разрывов / мерцаний.

Как я могу включить / использовать двойную буферизацию, чтобы она выводила ее за пределы экрана, а затем показывала все?


person Scorcher84    schedule 19.10.2009    source источник


Ответы (3)


Ознакомьтесь с этим руководством по двойной буферизации: http://gpwiki.org/index.php/Java:Tutorials:Double_Buffering

person flash    schedule 19.10.2009

Несколько советов по эффективному использованию буферизации в качестве просмотра

и некоторые программы тестирования доступны

person ArK    schedule 19.10.2009

1) Вы создаете экземпляр BufferedImage. Для максимальной производительности вы должны убедиться, что Буферизованное изображение использует ту же модель, что и экран, на который вы выполняете рендеринг.

Проверьте это, чтобы узнать, как создать BufferedImage, используя Graphics2D, переданный методу рисования любого компонента (существует много способов создания буферизованных изображений, это связывает несколько ...)

[http://www.exampledepot.com/egs/java.awt.image/CreateBuf.html][1]

2) Вы получаете Graphics [getGraphics ()], связанный с буферизованным изображением, преобразуете его в Graphics2D, если вам нужно, и визуализируете свои примитивы в буферизованное изображение, вызывая команды на этом графическом объекте (также можете передать этот графический объект компонентам в нарисуйте себя на вашем буферизованном изображении).

3) Вы рисуете буферизованное изображение в свой компонент, переопределяя его метод рисования и вызывая вариант drawImage () для аргумента Graphics2D, переданного компоненту.

lmk, если вам нужен образец кода ...

person Thibaud de Souza    schedule 22.10.2009