code: protected void paintTabArea(SeaGlassContext ss, Graphics g, int tabPlacement, int selectedIndex, Rectangle tabAreaBounds) {
          Rectangle clipRect = g.getClipBounds();
  
          ss.setComponentState(SynthConstants.ENABLED);
  
          // Paint the tab area.
          SeaGlassLookAndFeel.updateSubregion(ss, g, tabAreaBounds);
          ss.getPainter().paintTabbedPaneTabAreaBackground(ss, g, tabAreaBounds.x, tabAreaBounds.y, tabAreaBounds.width,
                                                           tabAreaBounds.height, tabPlacement);
          ss.getPainter().paintTabbedPaneTabAreaBorder(ss, g, tabAreaBounds.x, tabAreaBounds.y, tabAreaBounds.width, tabAreaBounds.height,
                                                       tabPlacement);
  
          iconRect.setBounds(0, 0, 0, 0);
          textRect.setBounds(0, 0, 0, 0);
  
          if (runCount == 0) {
              return;
          }
  
          if (scrollBackwardButton.isVisible()) {
              paintScrollButtonBackground(ss, g, scrollBackwardButton);
          }
  
          if (scrollForwardButton.isVisible()) {
              paintScrollButtonBackground(ss, g, scrollForwardButton);
          }
  
          for (int i = leadingTabIndex; i <= trailingTabIndex; i++) {
              if (rects[i].intersects(clipRect) && selectedIndex != i) {
                  paintTab(tabContext, g, rects, i, iconRect, textRect);
              }
          }
  
          if (selectedIndex >= 0) {
              if (rects[selectedIndex].intersects(clipRect)) {
                  paintTab(tabContext, g, rects, selectedIndex, iconRect, textRect);
              }
          }
      }
docs: Paint the tab area, including the tabs.
  
  @param ss            the SynthContext.
  @param g             the Graphics context.
  @param tabPlacement  the side the tabs are on.
  @param selectedIndex the current selected tab index.
  @param tabAreaBounds the bounds of the tab area.