protected Color getOutlineColor( Component c ) {
		if( !(c instanceof JComponent) )
			return null;

		Object outline = ((JComponent)c).getClientProperty( FlatClientProperties.OUTLINE );
		if( outline == null )
			outline = this.outline;
		if( outline == null ) {
			if( outlineColor != null && outlineFocusedColor != null )
				outline = new Color[] { outlineFocusedColor, outlineColor };
			else if( outlineColor != null )
				outline = outlineColor;
			else if( outlineFocusedColor != null )
				outline = outlineFocusedColor;
		}

		if( outline instanceof String ) {
			switch( (String) outline ) {
				case FlatClientProperties.OUTLINE_ERROR:
					return isFocused( c ) ? errorFocusedBorderColor : errorBorderColor;

				case FlatClientProperties.OUTLINE_WARNING:
					return isFocused( c ) ? warningFocusedBorderColor : warningBorderColor;

				case FlatClientProperties.OUTLINE_SUCCESS:
					return isFocused( c ) ? successFocusedBorderColor : successBorderColor;
			}
		} else if( outline instanceof Color ) {
			Color color = (Color) outline;
			// use color functions to compute color for unfocused state
			if( !isFocused( c ) && customBorderColor instanceof DerivedColor )
				color = ((DerivedColor)customBorderColor).derive( color );
			return color;
		} else if( outline instanceof Color[] && ((Color[])outline).length >= 2 )
			return ((Color[])outline)[isFocused( c ) ? 0 : 1];

		return null;
	}
Returns the outline color of the component border specified in client property
{@link FlatClientProperties#OUTLINE}.
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatBorder.java