【发布时间】:2011-12-31 19:34:04
【问题描述】:
基本上我画了很多透明的 JPanel;分析表明大部分时间都花在了 Component.paint() 中。可以彻底优化这一点,因为在大多数情况下,每个 JPanel 的真正非透明区域非常小,例如在边缘周围。
就目前而言,repainting() 组件将触发对其父级的 所有 的重绘,因为 RepaintManager 无法知道脏父级区域实际上是不透明的,并且会在组件上向上等级制度。我正在考虑在面板失效时向所有父母致电markCompletelyClean(),并自己使用addDirtyRegion()管理脏区。
但是,是否有一种更简洁的方法,仅将 JPanel 的特定矩形标记为不透明(或透明,无关紧要)?
【问题讨论】:
标签: java swing jpanel repaint dirtyrectangle