私のアプレットでは、さまざまなBufferedImage
を利用し、それらを画面パーツとして使用しています。各画面パーツは、コンテンツを変更する必要がある場合にのみ再描画されます。
これは抽象ScreenPart
クラスです:
public abstract class ScreenPart extends BufferedImage{
Graphics2D g;
private BufferedImage buffer = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB);
public ScreenPart(int width, int height) {
super(width, height, BufferedImage.TYPE_INT_ARGB);
g = createGraphics();
repaint();
}
public abstract void paint(Graphics2D g);
public void repaint(){
g.drawImage(buffer, 0, 0, null);
paint(g);
}
}
ただし、バッファーも透過的であるため、バッファーは機能しません。BufferedImage
バッファのタイプを ARGB から RGBに変更すると機能しますが、これは黒い背景も表示します。私の質問は次のとおりです。これBufferedImage
をバッファで正しく再描画するにはどうすればよいですか?