no no No No NO! That's one route to 100% CPU usage.

Never never never never change state (and revalidate() does result in a change of state) in a painting method override.

Adding a call to...