Вы уже пришли к решению по этому вопросу?Вот мое мнение о вещах ...
Переопределение getInsets()
выглядит хорошим решением, если у вас есть простой стиль с небольшим количеством контекстов.Это должно помочь сохранить согласованность вставок во всем вашем графическом интерфейсе с единственной необходимой точкой изменения.
Применение пустой границы к компонентам кажется немного хакерским для этой цели.Если вам нужно применить пользовательскую границу к компоненту, вы можете случайно удалить пустую границу, если не переопределите методы setBorder()
для использования составной границы.
Установка всех вставок в 0 не требуется, поскольку они начинаются с0 уже ... я бы очень испугался при мысли переписать методы рисования!Обычно это делается для добавления завершающих штрихов к компонентам, а не для переопределения их полных границ.
Я не совсем уверен, как поможет создание нового ComponentUI
, поскольку это главным образом связано с изменением размеров и окраской (как описано выше).
Сначала я опробую вариант 1, так как он будет иметь глобальное влияние на ваше приложение, а затем начнет работать над тем, какие исключения и контексты вы хотите в него вставить.