Есть ли способ создать «инвертированную» область клипа для рисования на Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Есть ли способ создать «инвертированную» область клипа для рисования на Java?

Сообщение Anonymous »

Я хочу заполнить область с помощью Graphics.fillRoundRect(), но хочу, чтобы прямоугольник в середине не был заполнен.

По сути, учитывая компонент размером 100x30, я хочу установить отсечение в виде прямоугольника 10,10 размером 80x10, но чтобы заливка закрашивала только область снаружи размером 80x10. прямоугольник. Причина в том, что мне нужна граница из n пикселей с изогнутым контуром, не затрагивающая внутреннюю область компонента.

Лучший способ, который я вижу на данный момент, — это обрезать 10,10 90x10 и выполните fillRoundRect(), а затем обрежьте до 90,10 10x10 и выполните fillRect(), чтобы заполнить правую часть, ниже и выше углов.

Если я просто перерисую прямоугольник с одной линией, то в итоге у меня останутся «пятна» на углах, потому что кривые не совсем соприкасаются (и/или потому, что AA влияет на окружающие пиксели).

РЕДАКТИРОВАНИЕ: предостережение: мне нужен способ сделать это, который будет работать с J2ME AWT (CDC с личным профилем 1.1), а также с J2SE.

< час />

Редактировать: на другой похожий вопрос есть ответ, который я смог адаптировать. Код, который работает правильно в моей ситуации, публикуется как ответ для себя.

Подробнее здесь: https://stackoverflow.com/questions/127 ... ng-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»