JPanel は、デフォルトで自動的にダブルバッファリングされることを知っています。ただし、パネルで特に時間のかかる描画操作を行っていますが、パネルを再描画する必要があるのは、基になるデータが変更されたときだけであり、これはまれです。したがって、を呼び出すたびに JPanel バッファをクリアするのではなく、再利用したいと思いrepaint()
ます。
JPanel サブクラスに「ダーティ」フラグを手動で実装しましたが、開始されたペイント操作をキャンセルする方法がわかりません。私のパネルは JScrollPane 内にあり、サイズが変更されるたびに (頻繁に発生します) 再描画され、カスタム パネルが再描画されるため、最初に再描画の呼び出しを避けることはできません。
パネルを手動でバッファリングせずにこれを行う方法はありますか? そうでない場合、JPanel と組み合わせて手動バッファーを実装するための推奨される方法は何ですか?