If you are using active rendering then don't call the repaint in mouse moved and have it just wait till the next tick. If you are not using active rendering you will probably need to change it to only repaint when the hover value has changed.
How do I know which one I'm using
and what's the difference between the two?
EDIT: It looks like I'm not using active rendering. I tried not calling repaint()
but my desired outcome (framing the enemy window in yellow to show you are hovering)
does not happen correctly.
After more fiddling, I found out that it was my thread that was not working correctly.
I AM using active rendering, so the previous suggestion worked.
and I was missing the update() method upon further inspection.
Thanks for the help.