Pergunta

Estou tendo alguns problemas com o Setclip em Java. Eu tenho uma aula que estende o JPanel. Dentro dessa classe, substituí o método PaintComponent. Meu método de componente de tinta se parece com o seguinte:

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);
}

O problema que estou vendo é que a área na região cortada parece estar pintada repetidamente. Por exemplo, se eu disser para pintar, ele pinta muito bem. Mas então, se eu trocar de janelas ou de alguma forma, caso contrário, pintará a mesma coisa novamente, a região cortada não será liberada enquanto o restante é. Isso resulta na pintura na região cortada para parecer mais ousada do que o restante da área pintável.

Eu imagino que estou perdendo alguma coisa em como o Setclip funciona.

Qualquer sugestão será muito bem-vinda. Agradecemos antecipadamente por qualquer ajuda.

Foi útil?

Solução

Criar um novo objeto gráfico a partir do antigo fez o truque para mim, conforme recomendado por Tom.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top