Pregunta

Tengo algunos problemas con SetClip en Java. Tengo una clase que extiende JPanel. Dentro de esa clase he anulado el método PaintComponent. Mi método de componente de pintura se parece a esto:

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

El problema que estoy viendo es que el área en la región recortada parece estar pintada repetidamente. Por ejemplo, si le digo que pinte, pinta bien. Pero entonces, si cambio de ventanas o de alguna manera más, lo que hace que vuelva a pintar lo mismo, la región recortada no se borra mientras que el resto lo es. Esto da como resultado que la pintura en la región recortada parezca más audaz que el resto del área pintable.

Me imagino que me falta algo en cómo funciona SetClip.

Cualquier sugerencia sería muy apreciada. Gracias de antemano por cualquier ayuda.

¿Fue útil?

Solución

La creación de un nuevo objeto gráfico del viejo hizo el truco para mí, como lo aconsejó Tom.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top