Как установить цвет фона переднего плана ширины JTabbedPane Tab (как выбранный, так и невыбранный вкладка) - PullRequest
1 голос
/ 09 августа 2011

Как установить фон вкладки JTabbedPane и передний план, высоту и ширину (выбранные и невыбранные вкладки)

Ответы [ 3 ]

5 голосов
/ 09 августа 2011

Вы можете установить новые значения в UID по умолчанию:

        UIDefaults def = UIManager.getLookAndFeelDefaults();
        def.put( "TabbedPane.foreground", Color.RED );
        def.put( "TabbedPane.textIconGap", new Integer(16) );
        def.put( "TabbedPane.background", Color.BLUE );
        def.put( "TabbedPane.tabInsets", new Insets(10,10,10,10) );
        def.put( "TabbedPane.selectedTabPadInsets", new Insets(10,20,10,20) );

вот список ключей

TabbedPane.textIconGap
TabbedPane.contentOpaque
TabbedPane.focus
TabbedPane.foreground
TabbedPane.tabRunOverlay
TabbedPane.shadow
TabbedPane.darkShadow
TabbedPane.background
TabbedPane.ancestorInputMap
TabbedPane.focusInputMap
TabbedPane.tabInsets
TabbedPane.light
TabbedPane.contentBorderInsets
TabbedPane.tabsOverlapBorder
TabbedPane.tabsOpaque
TabbedPane.tabAreaInsets
TabbedPane.highlight
TabbedPane.font
TabbedPane.selectedTabPadInsets

Для Nimbus LookAndFeel есть некоторые другие Nimbus по умолчанию нравится:

      TabbedPane:TabbedPaneTabArea.contentMargins
      TabbedPane:TabbedPaneTabArea[Enabled].backgroundPainter
      TabbedPane:TabbedPaneTab[Selected].backgroundPainter
      TabbedPane:TabbedPaneTabArea[Enabled].backgroundPainter
      TabbedPane:TabbedPaneTab.contentMargins
      TabbedPane.tabOverlap
1 голос
/ 19 октября 2011

Один из способов изменить высоту и ширину вкладок - использовать HTML и / или CSS в метке вкладки. Для этой цели вы можете использовать атрибут заполнения CSS в элементе HTML span или p.

0 голосов
/ 04 августа 2016

Вы можете контролировать высоту следующим образом:

JTabbedPane tabs = new JTabbedPane();
tabs.setUI(new BasicTabbedPaneUI() {
    @Override
    protected int calculateTabHeight(int tabPlacement, int tabIndex, int fontHeight) {
        return 45; // manipulate this number however you please.
    }
});

Если каждая вкладка должна иметь разную высоту, этот ответ также может быть полезен: Как обрабатывать высоту заголовка вкладки в JTabbedPane

...