我在使用 Java 中的 setClip 时遇到了一些麻烦。我有一个扩展 JPanel 的类。在该类中,我重写了paintComponent 方法。我的paintComponent 方法看起来像这样:
paintComponent {
//draw some lines here
Rectangle whole = g2.getClipBounds();//g2 is my Graphics2D object
Rectangle part = <some rectangle that is a part of the whole paintable area>;
g2.setClip(part);
//draw some more stuff here
g2.setClip(whole);
}
我看到的问题是裁剪区域中的区域似乎被重复绘制。例如,如果我告诉它画画,它就会画得很好。但是,如果我切换窗口或以其他方式导致它再次绘制相同的东西,则剪切区域不会被清除,而其余区域则不会被清除。这会导致剪切区域上的绘画比其他可绘画区域更粗。
我想我在 setClip 的工作方式上遗漏了一些东西。
任何建议将不胜感激。提前感谢您的帮助。