我知道 JPanel 默认情况下是自动双缓冲的。但是,我的面板中有一个特别耗时的绘制操作,但是只有在底层数据发生变化时才需要重新绘制面板,这种情况很少见。因此,我想重用 JPanel 缓冲区,而不是在每次调用repaint()
.
我已经在我的 JPanel 子类上手动实现了一个“脏”标志,但是我不知道如何在绘制操作开始后取消它。首先,我无法避免重新绘制的调用,因为我的面板位于 JScrollPane 内,每次调整大小时都会重新绘制它(这确实经常发生),这会导致我的自定义面板被重新绘制。
有没有办法在不手动缓冲面板的情况下做到这一点?如果没有,结合 JPanel 实现手动缓冲区的推荐方法是什么?