@Override
		public void paintIcon( Component c, Graphics g, int x, int y ) {
			NoFocusButton button = (NoFocusButton) c;

			Object[] oldRenderingHints = FlatUIUtils.setRenderingHints( g );

			// paint hover or pressed background
			if( button.isEnabled() ) {
				Color background = (buttonPressedBackground != null && button.isMousePressed())
					? buttonPressedBackground
					: (buttonHoverBackground != null && button.isMouseOver()
						? buttonHoverBackground
						: null);

				if( background != null ) {
					// rotate button insets
					Insets insets = new Insets( 0, 0, 0, 0 );
					rotateInsets( buttonInsets, insets, _tabPane.getTabPlacement() );

					// fill background
					g.setColor( FlatUIUtils.deriveColor( background, _tabPane.getBackground() ) );
					FlatUIUtils.paintComponentBackground( (Graphics2D) g,
						insets.left, insets.top,
						button.getWidth() - insets.left - insets.right,
						button.getHeight() - insets.top - insets.bottom,
						0, scale( (float) buttonArc ) );
				}
			}

			// arrow direction
			int direction = -1;
			switch( button.getType() ) {
				case JideTabbedPane.BUTTON_WEST:
					direction = isHorizontalTabPlacement()
						? (isLeftToRight() ? WEST : EAST)
						: NORTH;
					break;

				case JideTabbedPane.BUTTON_EAST:
					direction = isHorizontalTabPlacement()
						? (isLeftToRight() ? EAST : WEST)
						: SOUTH;
					break;

				case JideTabbedPane.BUTTON_LIST:
					switch( _tabPane.getTabPlacement() ) {
						default:
						case TOP:	direction = SOUTH; break;
						case BOTTOM:	direction = NORTH; break;
						case LEFT:	direction = EAST; break;
						case RIGHT:	direction = WEST; break;
					}
					break;
			}

			// paint arrow
			g.setColor( button.isEnabled() ? foreground : disabledForeground );
			FlatUIUtils.paintArrow( (Graphics2D) g,
				0, 0, button.getWidth(), button.getHeight(),
				direction, FlatUIUtils.isChevron( arrowType ), 10, 1, 0, 0 );

			FlatUIUtils.resetRenderingHints( g, oldRenderingHints );
		}
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