Gets the layered pane of the window of the given component.
//package com.javadocking.util; import java.awt.Window; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLayeredPane; import javax.swing.JRootPane; import javax.swing.JWindow; import javax.swing.SwingUtilities; /** * This class contains a collection of static utility methods for Swing. * * @author Heidi Rakels. */ public class SwingUtil { /** * Gets the layered pane of the window of the given component. * The window of the root pane should be a javax.swing.JFrame, javax.swing.JDialog * or javax.swing.JWindow. Otherwise the layered pane of the rootpane is returned. * * @param rootPane The root pane whose layered pane is retrieved. * @return The layered pane. */ public static JLayeredPane getLayeredPane(JRootPane rootPane) { // Get the window of the component. Window window = SwingUtilities.getWindowAncestor(rootPane); if (window != null) { // Get the layered pane if we can find one. if (window instanceof JFrame) return ((JFrame)window).getLayeredPane(); if (window instanceof JDialog) return ((JDialog)window).getLayeredPane(); if (window instanceof JWindow) return ((JWindow)window).getLayeredPane(); } // Get the layered pane of the root pane immediately. return rootPane.getLayeredPane(); } }