基本上,我正在绘制许多透明的JPanels;分析显示大部分时间都花费在Component.paint()上。在大多数情况下,每个JPanel的真正非不透明区域相当小,例如在边缘周围。
现在的情况是,重新绘制组件会触发其所有父项的重绘,因为RepaintManager无法知道脏父项区域实际上是不透明的并且会向上遍历组件层次结构。我考虑在面板失效时对所有父项调用markCompletelyClean(),并使用addDirtyRegion()自己管理脏区域。
然而,有没有更清晰的方法来标记JPanel的特定矩形区域为不透明(或透明,不重要)?
现在的情况是,重新绘制组件会触发其所有父项的重绘,因为RepaintManager无法知道脏父项区域实际上是不透明的并且会向上遍历组件层次结构。我考虑在面板失效时对所有父项调用markCompletelyClean(),并使用addDirtyRegion()自己管理脏区域。
然而,有没有更清晰的方法来标记JPanel的特定矩形区域为不透明(或透明,不重要)?