java的画布一定要每次paint都整个刷新吗

画布有update、repaint、paint三个方法,一般重写paint方法。现在我想在paint中加一个判断,是否重置画布,只有重置时才刷新整个画布,否则在原有基础上继续画,但这样出现了一个问题,其它弹出的组件会在画布上留下阴影(只能通过重新绘制画布背景去除,但我不想多次重画背景),调用画布的repaint方法也不能去除(因为repaint实际调用了paint)。问题是不仅阴影不能去除,反而会在画布上绘制整个界面(只是绘制,无法点击等)。。。请问这是什么原因呢?会不会整个界面在操作时(如点击菜单),实际也是运行了这三个方法,且都是每次都全部刷新,而我改了画布的paint,无法刷新背景?

https://zhidao.baidu.com/question/1958976072740505380.html

图片说明