Java setClip, кажется, перерисовать

У меня есть некоторые проблемы с 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.

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

1 ответ

Решение

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

Другие вопросы по тегам