How to set JTabbedPane Tab height width background foreground color (Both selected and Unselected Tab)

后端 未结 3 915
一生所求
一生所求 2021-01-20 17:01

How to set the JTabbedPane Tab background and Foreground, Height and Width (Both selected and Unselected Tab)

相关标签:
3条回答
  • 2021-01-20 17:04

    One way to change height and width of tabs is to use HTML and/or CSS in label of tab. You can use CSS padding attribute in HTML 'span' or 'p' element for this purpose.

    0 讨论(0)
  • 2021-01-20 17:07

    You can control the height as follows:

    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.
        }
    });
    

    If each tab needs to be a different height, this answer might also be useful: How to handle the height of the tab title in JTabbedPane

    0 讨论(0)
  • 2021-01-20 17:24

    You can set new values to the UIDefaults:

            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) );
    

    here are a list of Keys

    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
    

    For Nimbus LookAndFeel there are some other Nimbus Defaults like:

          TabbedPane:TabbedPaneTabArea.contentMargins
          TabbedPane:TabbedPaneTabArea[Enabled].backgroundPainter
          TabbedPane:TabbedPaneTab[Selected].backgroundPainter
          TabbedPane:TabbedPaneTabArea[Enabled].backgroundPainter
          TabbedPane:TabbedPaneTab.contentMargins
          TabbedPane.tabOverlap
    
    0 讨论(0)
提交回复
热议问题