我在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的工作方式。

任何建议将不胜感激。在此先感谢您的任何帮助。

有帮助吗?

解决方案

正如汤姆(Tom)所建议的那样,从旧图形创建一个新的图形对象为我带来了困难。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top