default <T extends Enum<T>> T getClientPropertyEnumString( Object key, Class<T> enumType,
		String defaultValueKey, T defaultValue )
	{
		Object value = getClientProperty( key );
		if( !(value instanceof String) && defaultValueKey != null )
			value = UIManager.getString( defaultValueKey );
		if( value instanceof String ) {
			try {
				return Enum.valueOf( enumType, (String) value );
			} catch( IllegalArgumentException ex ) {
				LoggingFacade.INSTANCE.logSevere( "FlatLaf: Unknown enum value '" + value + "' in enum '" + enumType.getName() + "'.", ex );
			}
		}
		return defaultValue;
	}
Overrides {@link JComponent#putClientProperty(Object, Object)}.
flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/components/FlatComponentExtension.java