Java Applet

ダブルバッファ

再描画を繰り返していると、画面がちらつきます。 それを抑える方法がダブルバッファです。

TestJavaApplet11.java

仮想画面に直線を描きます。

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;

import javax.swing.JApplet;

public class TestJavaApplet11 extends JApplet {

	Graphics2D g2;
	Image img; // 仮想画面

	public void paint(Graphics g) {
		img = createImage(getWidth(), getHeight());
		g2 = (Graphics2D) img.getGraphics();

		// 図形のアンチエイリアス処理
		g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);

		// 画面消去
		g2.clearRect(0, 0, getWidth(), getHeight());
		// 線
		g2.drawLine(0, 0, getWidth(), getHeight());

		g.drawImage(img, 0, 0, this);
	}
}

解説

まず、仮想画面になる Imageクラスの変数を用意します。 createImageメソッドで画面のサイズを指定します。

img = createImage(getWidth(), getHeight());

Graphicsクラスの変数が、仮想画面を指すようにします。

g2 = (Graphics2D) img.getGraphics();

g2 を使い描画します。 もちろん仮想画面に描画することになります。 最後に実際の画面に仮想画面をコピーします。

g.drawImage(img, 0, 0, this);

実行画面

[前へ] [戻る] [次へ]