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();
}
}
Related examples in the same category