I want to fill a region using Graphics.fillRoundRect(), but I want a rectangle in the middle of it to not be filled.
Essentially, given a component of 100x30, I want to set clipping to be the rectangle at 10,10 of size 80x10 but have the fill only paint the area outside that 80x10 rectangle. The reason is that I want a border of n pixels with a curved outline painted without affecting the inside component area.
The best way I can see so far is to clip to 10,10 90x10 and do the fillRoundRect() and then clip to 90,10 10x10 and do a fillRect() to fill in the right hand side, below and above the corners.
If I simple repaint a single line rectangle then I end up with "spotting" on the corners because the curves don't quite abut (and/or because AA affects surrounding pixels).
EDIT: Caveat - I need a way to do it which will work with J2ME AWT (CDC with Personal Profile 1.1) as well as J2SE.
Edit: Another similar question has an an answer I was able to adapt. The code that works correctly for my situation is posted as a self-answer.