private Rectangle getTabCloseBounds( int tabIndex ) {
			int iconWidth = closeIcon.getIconWidth();
			int iconHeight = closeIcon.getIconHeight();
			Rectangle tabRect = _rects[tabIndex];
			Insets tabInsets = getTabInsets( _tabPane.getTabPlacement(), tabIndex );

			// use one-third of right/left tab insets as gap between tab text and close button
			if( _tabPane.getTabPlacement() == JideTabbedPane.TOP || _tabPane.getTabPlacement() == JideTabbedPane.BOTTOM ) {
				return new Rectangle(
					_tabPane.getComponentOrientation().isLeftToRight()
						? (tabRect.x + tabRect.width - (tabInsets.right / 3 * 2) - iconWidth)
						: (tabRect.x + (tabInsets.left / 3 * 2)),
					tabRect.y + (tabRect.height - iconHeight) / 2,
					iconWidth,
					iconHeight );
			} else {
				return new Rectangle(
					tabRect.x + (tabRect.width - iconWidth) / 2,
					tabRect.y + tabRect.height - (tabInsets.bottom / 3 * 2) - iconHeight,
					iconWidth,
					iconHeight );
			}
		}
Actually does nearly the same as super.paintContentBorder() but
  - not invoking paintContentBorder*Edge() methods
  - repaint selection
flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java