基本的に、私は透明な JPanel をたくさん描いています。プロファイリングは、ほとんどの時間が Component.paint() に費やされていることを示しています。ほとんどの場合、JPanel ごとの実際の非透過領域は非常に小さいため、たとえばエッジの周りなど、これを非常に根本的に最適化することが可能です。
現状では、RepaintManager はダーティな親領域が実際には不透明であり、コンポーネント階層を上っていくことがわからないため、コンポーネントを repainting() すると、すべての親の再描画がトリガーされます。markCompletelyClean()
パネルが無効化されるたびにすべての親に電話をかけ、自分でダーティ リージョンを管理することを考えていましaddDirtyRegion()
た。
ただし、JPanel の特定の四角形のみを不透明 (または透明、問題ではない) としてマークする、よりクリーンなアプローチはありますか?