title: JTabbedPane customize tab look
body: <p>I want to customize the look of the tabs in JTabbedPane.<br/>
  I want to start from the simplest and plainest behavior: no borders, solid color.<br/>
  The problem is that a non-plainess still remains: the tabs slight margin overlap.<br/></p>
  
  <p><img src="https://i.stack.imgur.com/8439S.png" alt="enter image description here"></p>
  
  <p>You see that since the second tab is selected, it is "brought to the fore".
  This is achieved by a slight margin overlap.
  Is there a (non tricky) way to disable this behavior? </p>
  
  <p>simple, testable (just fix imports) code:</p>
  
  <pre><code>public class TabbedPane_LookStudy extends JFrame{
  
  public static void main(String [] args) throws UnsupportedLookAndFeelException {
      UIManager.setLookAndFeel(new NimbusLookAndFeel());
      new TabbedPane_LookStudy().setVisible(true);
  }
  
  public TabbedPane_LookStudy() {
      JTabbedPane tp = new JTabbedPane();
      tp.setUI(new MyTabbedPaneUI());
      add(tp);
  
      tp.addTab("first",new JPanel());
      tp.addTab("second", new JPanel());
      tp.addTab("third", new JPanel());
  
      setPreferredSize(new Dimension(180,100));
      pack();
  }
  
  public static class MyTabbedPaneUI extends javax.swing.plaf.basic.BasicTabbedPaneUI {
  
      @Override
      protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, 
                 int tabIndex, Rectangle iconRect, Rectangle textRect) {
          Color savedColor = g.getColor();
          g.setColor(Color.PINK);
          g.fillRect(rects[tabIndex].x, rects[tabIndex].y, 
                 rects[tabIndex].width, rects[tabIndex].height);
          g.setColor(Color.BLUE);
          g.drawRect(rects[tabIndex].x, rects[tabIndex].y, 
                 rects[tabIndex].width, rects[tabIndex].height);
          g.setColor(savedColor);
      }
   }
  </code></pre>
  
  <p>}</p>