static String valueAsString( Object value, Object info ) {
			if( value instanceof Color ) {
				Color color = (info instanceof Color[]) ? ((Color[])info)[0] : (Color) value;
				HSLColor hslColor = new HSLColor( color );
				int hue = Math.round( hslColor.getHue() );
				int saturation = Math.round( hslColor.getSaturation() );
				int luminance = Math.round( hslColor.getLuminance() );
				if( color.getAlpha() == 255 ) {
					return String.format( "%-9s HSL %3d %3d %3d",
						color2hex( color ), hue, saturation, luminance );
				} else {
					int alpha = Math.round( hslColor.getAlpha() * 100 );
					return String.format( "%-9s HSL %3d %3d %3d %2d",
						color2hex( color ), hue, saturation, luminance, alpha );
				}
			} else if( value instanceof Insets ) {
				Insets insets = (Insets) value;
				return insets.top + "," + insets.left + "," + insets.bottom + "," + insets.right;
			} else if( value instanceof Dimension ) {
				Dimension dim = (Dimension) value;
				return dim.width + "," + dim.height;
			} else if( value instanceof Font ) {
				Font font = (Font) value;
				String s = font.getFamily() + " " + font.getSize();
				if( font.isBold() )
					s += " bold";
				if( font.isItalic() )
					s += " italic";
				return s;
			} else if( value instanceof Icon ) {
				Icon icon = (Icon) value;
				return icon.getIconWidth() + "x" + icon.getIconHeight() + "   " + icon.getClass().getName();
			} else if( value instanceof Border ) {
				Border border = (Border) value;
				if( border instanceof FlatLineBorder ) {
					FlatLineBorder lineBorder = (FlatLineBorder) border;
					return valueAsString( lineBorder.getUnscaledBorderInsets(), null )
						+ "  " + color2hex( lineBorder.getLineColor() )
						+ "  " + lineBorder.getLineThickness()
						+ "    " + border.getClass().getName();
				} else if( border instanceof EmptyBorder ) {
					Insets insets = (border instanceof FlatEmptyBorder)
						? ((FlatEmptyBorder)border).getUnscaledBorderInsets()
						: ((EmptyBorder)border).getBorderInsets();
					return valueAsString( insets, null ) + "    " + border.getClass().getName();
				} else if( border instanceof FlatBorder || border instanceof FlatMarginBorder )
					return border.getClass().getName();
				else
					return String.valueOf( value );
			} else if( value instanceof GrayFilter ) {
				GrayFilter grayFilter = (GrayFilter) value;
				return grayFilter.getBrightness() + "," + grayFilter.getContrast()
					+ " " + grayFilter.getAlpha() + "    " + grayFilter.getClass().getName();
			} else if( value instanceof ActionMap ) {
				ActionMap actionMap = (ActionMap) value;
				return "ActionMap (" + actionMap.size() + ")";
			} else if( value instanceof InputMap ) {
				InputMap inputMap = (InputMap) value;
				return "InputMap (" + inputMap.size() + ")";
			} else if( value instanceof Object[] )
				return Arrays.toString( (Object[]) value );
			else if( value instanceof int[] )
				return Arrays.toString( (int[]) value );
			else
				return String.valueOf( value );
		}
Creates a UI defaults inspector panel that can be embedded into any window.
flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java