Java アプレットのバックバッファに関して小さな問題があります。現在、実行時のアプレットのサイズ変更については考慮していません。したがって、パネルのサイズが変更されますが、バックバッファーは初期サイズを維持します。したがって、アプレットの一部のみが再描画され、画像サイズでカバーされます。それにもかかわらず、私はイメージを再初期化しようとしました
private void createBackBuffer() {
backBuffer = this.getGraphicsConfiguration().createCompatibleVolatileImage(getWidth(), getHeight());
defaultComposite = ((Graphics2D) backBuffer.getGraphics()).getComposite();
defaultStroke = ((Graphics2D) backBuffer.getGraphics()).getStroke();
}
// Reinit on resize
public void adjustBackBufferSize() {
if (backBuffer != null) {
backBuffer.flush();
createBackBuffer();
}
}
残念ながら、それは感謝しない振る舞いです。ユーザーがブラウザー ウィンドウのサイズを変更するためにドラッグを開始するとすぐに、再作成は、描画するためのバックバッファーがないことを意味します。そのため、パネルがちらつき、灰色の背景、以前のパネル、またはレンダリングしようとしている実際の図面のいずれかが表示されます。
サイズ変更中に幅と高さにオフセットを設定してちらつきの動作を下げることを検討しましたが、これはまだ適切な方法ではないようで、単なる回避策です。
ちらつきなしでサイズを変更するための提案はありますか?!
敬具。