画面上で Java2D を使用して多数のプリミティブを描画していますが、ティアリングやちらつきが多く発生します。
ダブルバッファリングを有効/使用して、画面外に描画してから全体を表示するにはどうすればよいですか?
画面上で Java2D を使用して多数のプリミティブを描画していますが、ティアリングやちらつきが多く発生します。
ダブルバッファリングを有効/使用して、画面外に描画してから全体を表示するにはどうすればよいですか?
1) BufferedImage インスタンスを作成します。最大のパフォーマンスを得るには、バッファリングされた画像がレンダリング先の画面と同じモデルを使用していることを確認してください。
任意のコンポーネントの paint メソッドに渡された Graphics2D を使用して BufferedImage を作成する方法については、これを確認してください (バッファリングされた画像を作成するには多くの方法があります。これはいくつかのリンクです...)
[ http://www.exampledepot.com/egs/java.awt.image/CreateBuf.html][1]
2) バッファリングされた画像に関連付けられた Graphics [ getGraphics() ] を取得し、必要に応じてそれを Graphics2D にキャストし、そのグラフィックス オブジェクトでコマンドを呼び出すことにより、プリミティブをバッファリングされた画像にレンダリングします (そのグラフィックス オブジェクトをコンポーネントに渡すこともできます)。バッファリングされた画像にペイントします)。
3) コンポーネントに渡された Graphics2D 引数で、ペイント メソッドをオーバーライドし、 drawImage() のバリアントを呼び出して、バッファリングされた画像をコンポーネントに描画します。
サンプルコードが必要な場合は lmk...
プログラマービューとしてバッファリングを効果的に使用するためのヒント
およびいくつかのテストプログラムが利用可能です
ダブルバッファリングに関するこのチュートリアルをチェックしてください: http://gpwiki.org/index.php/Java:Tutorials:Double_Buffering