private boolean fillCellSelection( int x, int y, int width, int height ) {
			if( inPaintSelection )
				return false;

			Color color;
			Component rendererComponent;
			if( x == 0 && y == 0 &&
				((color = getColor()) == table.getSelectionBackground() ||
				 (alternateRowColor != null && color == alternateRowColor)) &&
				(rendererComponent = findActiveRendererComponent()) != null &&
				width == rendererComponent.getWidth() &&
				height == rendererComponent.getHeight() )
			{
				Point location = rendererComponent.getLocation();
				int row = table.rowAtPoint( location );
				int column = table.columnAtPoint( location );
				if( row >= 0 && column >= 0 ) {
					inPaintSelection = true;
					if( color == table.getSelectionBackground() )
						paintCellSelection( this, row, column, x, y, width, height );
					else
						paintAlternateRowBackground( this, row, column, x, y, width, height );
					inPaintSelection = false;

					return true;
				}
			}
			return false;
		}
Because selection painting is done in the cell renderer, it would be
necessary to require a FlatLaf specific renderer to implement rounded selection.
Using a LaF specific renderer was avoided because often a custom renderer is
already used in applications. Then either the rounded selection is not used,
or the application has to be changed to extend a FlatLaf renderer.
<p>
To solve this, a graphics proxy is used that paints rounded selection
if row/column/cell is selected and the renderer wants to fill the background.
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTableUI.java