Java setClip似乎在重绘

时间:2009-10-06 18:29:19

标签: java graphics2d

我在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如何工作方面缺少一些东西。

我们非常感谢任何建议。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

从旧的Graphics对象创建一个新的Graphics对象。谢谢汤姆!