Вопрос

У меня проблемы с SetClip в Java. У меня есть класс, который расширяет 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.

Любые предложения будут высоко ценится. Заранее благодарю за любую помощь.

Это было полезно?

Решение

Создание нового графического объекта из старого помогло мне, как посоветовал Том.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top