ダブルバッファを応用すると、
ウィンドウ画面上でダメージを受けた絵の内容も復活させることが可能になります。
たとえば、マウスを使って絵を描くようなアプリケーションを考えてみましょう。
画面に描かれる絵の内容はユーザーの操作によって変わっていきます。
それを復活させるためには、どこかに絵の内容を保存しておく必要があります。
それにダブルバッファを使います。
絵を表示する際に「裏の画面」にも同時に書き込む処理を update()メソッドで実行し、
絵がダメージを受けた時に「裏の画面」を paint()メソッドによって復活させれば
うまくいきます。
/** 起動時、画面の復活の時に呼び出される */
public void paint( Graphics g ) {
if( offScreen == null ) {
offScreen = createImage( getSize().width,
getSize().height );
offGraphics = offScreen.getGraphics();
offGraphics.setColor( Color.white );
offGraphics.fillRect( 0, 0,
getSize().width, getSize().height );
offGraphics.setColor( Color.black );
g.drawImage( offScreen, 0, 0, this );
}
else {
g.drawImage( offScreen, 0, 0, this );
}
}
/** アプレットにグラフィックを描く。*/
public void update( Graphics g ) {
g.drawLine( x1, y1, x2, y2 ); // 線を描く
offGraphics.drawLine( x1, y1, x2, y2 ); // 線を描く
x1 = x2;
y1 = y2;
}
サンプルのソース
関連するクラスの解説
補足の目次
講義全体の目次
大学のホームページ