@Override
	protected void installListeners() {
		super.installListeners();

		closeListener = e -> {
			if( frame.isClosable() )
				frame.doDefaultCloseAction();
		};
		closeButton.addActionListener( closeListener );
		closeButton.addMouseListener( mouseInputListener );

		ancestorListener = e -> {
			if( e.getNewValue() != null ) {
				// update dock icon preview if desktopIcon is added to desktop (internal frame was iconified)
				updateDockIconPreviewLater();
			} else {
				// remove preview icon to release memory
				dockIcon.setIcon( null );
			}
		};
		desktopIcon.addPropertyChangeListener( "ancestor", ancestorListener );
	}
Provides the Flat LaF UI delegate for {@link javax.swing.JInternalFrame.JDesktopIcon}.

<!-- BasicDesktopIconUI -->

@uiDefault DesktopIcon.border					Border

<!-- FlatDesktopIconUI -->

@uiDefault DesktopIcon.background				Color
@uiDefault DesktopIcon.foreground				Color
@uiDefault DesktopIcon.iconSize					Dimension
@uiDefault DesktopIcon.closeSize					Dimension
@uiDefault DesktopIcon.closeIcon					Icon

@author Karl Tauber
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatDesktopIconUI.java