Java setClip, кажется, перерисовать - PullRequest
1 голос
/ 06 октября 2009

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

2 голосов
/ 07 октября 2009

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

...