JTabbedPane в Windows L&F с несъемной рамкой

Я пишу Swing-программу, используя JTabbedPane (содержащий JScrollPane) и внешний вид Windows. Когда JTabbedPane рендерится с Windows L&F, он помещает двухпиксельную белую линию слева и однопиксельную белую линию внизу компонента (см. Прикрепленное изображение).

Есть ли способ удалить это? Добавление (или удаление) границы размещает только одну вокруг внешних линий. Я рассмотрел написание своего собственного пользовательского интерфейса для этого конкретного компонента, но я не уверен, с чего начать (не говоря уже о том, как использовать класс Windows L & F). Я могу использовать UIManager для установки смещения на 0, но это обрезает границу по умолчанию. Мои собственные теории вращаются вокруг какого-то устаревшего эффекта скоса, который не отображается в Windows 7. Какие-нибудь другие идеи?

1 ответ

Это выглядеть и чувствовать себя надежным. Попробуйте изменить UIManager ценностьTabbedPane.contentBorderInsets,

Например:

UIManager.getDefaults().put("TabbedPane.contentBorderInsets", new Insets(1,1,1,1));

Посмотрите UIManager Defaults (by @camickr) для других свойств и их значений по умолчанию.

РЕДАКТИРОВАТЬ:

Мне удалось очистить верхнюю линию с TabbedPane.tabAreaInsets:

UIManager.getDefaults().put("TabbedPane.contentBorderInsets", new Insets(0,0,0,0));
UIManager.getDefaults().put("TabbedPane.tabAreaInsets", new Insets(0,0,0,0));

введите описание изображения здесь

Другие вопросы по тегам