我在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如何工作方面缺少一些东西。
我们非常感谢任何建议。提前感谢您的帮助。
答案 0 :(得分:2)
从旧的Graphics对象创建一个新的Graphics对象。谢谢汤姆!