Я хочу заполнить область с помощью Graphics.fillRoundRect(), но я хочу, чтобы прямоугольник в середине не был заполнен.
По сути, учитывая компонент 100x30, я хочу установить отсечение как прямоугольник размером 10,10 размером 80x10, но чтобы заливка закрашивала только область за пределами этого прямоугольника 80x10. Причина в том, что я хочу нарисовать границу из n пикселей с изогнутым контуром, не затрагивая внутреннюю область компонента.
Лучший способ, который я вижу до сих пор, - это обрезать до 10,10 90x10 и выполнить fillRoundRect(), а затем обрезать до 90,10 10x10 и выполнить fillRect(), чтобы заполнить правую сторону, ниже и выше углов.
Если я просто перерисовываю прямоугольник с одной линией, то получаю «пятна» на углах, потому что кривые не совсем соприкасаются (и/или потому что сглаживание влияет на окружающие пиксели).
РЕДАКТИРОВАТЬ: предостережение - мне нужен способ сделать это, который будет работать с J2ME AWT (CDC с личным профилем 1.1), а также с J2SE.
Изменить: у другого похожего вопроса есть ответ Я смог адаптироваться. Код, который работает правильно для моей ситуации, публикуется как самостоятельный ответ.