1 /*
2 * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
41 * container, where higher-numbered components sit "on top" of other
42 * components.
43 * For task-oriented documentation and examples of using layered panes see
44 * <a href="http://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html">How to Use a Layered Pane</a>,
45 * a section in <em>The Java Tutorial</em>.
46 *
47 * <TABLE STYLE="FLOAT:RIGHT" BORDER="0" SUMMARY="layout">
48 * <TR>
49 * <TD ALIGN="CENTER">
50 * <P STYLE="TEXT-ALIGN:CENTER"><IMG SRC="doc-files/JLayeredPane-1.gif"
51 * alt="The following text describes this image."
52 * WIDTH="269" HEIGHT="264" STYLE="FLOAT:BOTTOM; BORDER=0">
53 * </TD>
54 * </TR>
55 * </TABLE>
56 * For convenience, <code>JLayeredPane</code> divides the depth-range
57 * into several different layers. Putting a component into one of those
58 * layers makes it easy to ensure that components overlap properly,
59 * without having to worry about specifying numbers for specific depths:
60 * <DL>
61 * <DT><FONT SIZE="2">DEFAULT_LAYER</FONT></DT>
62 * <DD>The standard layer, where most components go. This the bottommost
63 * layer.
64 * <DT><FONT SIZE="2">PALETTE_LAYER</FONT></DT>
65 * <DD>The palette layer sits over the default layer. Useful for floating
66 * toolbars and palettes, so they can be positioned above other components.
67 * <DT><FONT SIZE="2">MODAL_LAYER</FONT></DT>
68 * <DD>The layer used for modal dialogs. They will appear on top of any
69 * toolbars, palettes, or standard components in the container.
70 * <DT><FONT SIZE="2">POPUP_LAYER</FONT></DT>
71 * <DD>The popup layer displays above dialogs. That way, the popup windows
72 * associated with combo boxes, tooltips, and other help text will appear
73 * above the component, palette, or dialog that generated them.
74 * <DT><FONT SIZE="2">DRAG_LAYER</FONT></DT>
75 * <DD>When dragging a component, reassigning it to the drag layer ensures
76 * that it is positioned over every other component in the container. When
77 * finished dragging, it can be reassigned to its normal layer.
78 * </DL>
79 * The <code>JLayeredPane</code> methods <code>moveToFront(Component)</code>,
80 * <code>moveToBack(Component)</code> and <code>setPosition</code> can be used
81 * to reposition a component within its layer. The <code>setLayer</code> method
82 * can also be used to change the component's current layer.
83 *
84 * <h2>Details</h2>
85 * <code>JLayeredPane</code> manages its list of children like
86 * <code>Container</code>, but allows for the definition of a several
87 * layers within itself. Children in the same layer are managed exactly
88 * like the normal <code>Container</code> object,
89 * with the added feature that when children components overlap, children
90 * in higher layers display above the children in lower layers.
91 * <p>
92 * Each layer is a distinct integer number. The layer attribute can be set
93 * on a <code>Component</code> by passing an <code>Integer</code>
94 * object during the add call.<br> For example:
|
1 /*
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
41 * container, where higher-numbered components sit "on top" of other
42 * components.
43 * For task-oriented documentation and examples of using layered panes see
44 * <a href="http://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html">How to Use a Layered Pane</a>,
45 * a section in <em>The Java Tutorial</em>.
46 *
47 * <TABLE STYLE="FLOAT:RIGHT" BORDER="0" SUMMARY="layout">
48 * <TR>
49 * <TD ALIGN="CENTER">
50 * <P STYLE="TEXT-ALIGN:CENTER"><IMG SRC="doc-files/JLayeredPane-1.gif"
51 * alt="The following text describes this image."
52 * WIDTH="269" HEIGHT="264" STYLE="FLOAT:BOTTOM; BORDER=0">
53 * </TD>
54 * </TR>
55 * </TABLE>
56 * For convenience, <code>JLayeredPane</code> divides the depth-range
57 * into several different layers. Putting a component into one of those
58 * layers makes it easy to ensure that components overlap properly,
59 * without having to worry about specifying numbers for specific depths:
60 * <DL>
61 * <DT>DEFAULT_LAYER</DT>
62 * <DD>The standard layer, where most components go. This the bottommost
63 * layer.
64 * <DT>PALETTE_LAYER</DT>
65 * <DD>The palette layer sits over the default layer. Useful for floating
66 * toolbars and palettes, so they can be positioned above other components.
67 * <DT>MODAL_LAYER</DT>
68 * <DD>The layer used for modal dialogs. They will appear on top of any
69 * toolbars, palettes, or standard components in the container.
70 * <DT>POPUP_LAYER</DT>
71 * <DD>The popup layer displays above dialogs. That way, the popup windows
72 * associated with combo boxes, tooltips, and other help text will appear
73 * above the component, palette, or dialog that generated them.
74 * <DT>DRAG_LAYER</DT>
75 * <DD>When dragging a component, reassigning it to the drag layer ensures
76 * that it is positioned over every other component in the container. When
77 * finished dragging, it can be reassigned to its normal layer.
78 * </DL>
79 * The <code>JLayeredPane</code> methods <code>moveToFront(Component)</code>,
80 * <code>moveToBack(Component)</code> and <code>setPosition</code> can be used
81 * to reposition a component within its layer. The <code>setLayer</code> method
82 * can also be used to change the component's current layer.
83 *
84 * <h2>Details</h2>
85 * <code>JLayeredPane</code> manages its list of children like
86 * <code>Container</code>, but allows for the definition of a several
87 * layers within itself. Children in the same layer are managed exactly
88 * like the normal <code>Container</code> object,
89 * with the added feature that when children components overlap, children
90 * in higher layers display above the children in lower layers.
91 * <p>
92 * Each layer is a distinct integer number. The layer attribute can be set
93 * on a <code>Component</code> by passing an <code>Integer</code>
94 * object during the add call.<br> For example:
|