プログラマメモ2 - programmer no memo2

JLayeredPaneについてメモ 2008/12/09
2008/12/09

Javaです。
swingです。
使えたらすごくいろいろなことができそうだなぁと思っているJLayeredPaneについてです。

JFrameに他のコンポーネントにぺたぺたaddしたい場合は、getContentPane()してaddします。
JWindowでもいいのですが、JFrameは、getLayeredPane()、getRootPane()、getGlassPane()とかあります。

で、getLayeredPane()がいまいちよくわからない。
getLayeredPane()で取得できるJLayeredPaneには、getContentPane()があることがわかってますます頭が混乱してます。

じゃ、どのレイヤーにコンテントペインはあるのさ?
JLayeredPane.FRAME_CONTENT_LAYERに設定されています。

import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class TestJLayeredPane {


public static void main(String[] args) {

JFrame frame = new JFrame();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();

panel1.setName("panel1");
panel2.setName("panel2");
panel3.setName("panel3");

frame.getContentPane().add(panel1);
frame.getLayeredPane().add(panel2);
frame.getLayeredPane().add(panel3);

System.out.println(frame.getLayeredPane().getComponentCount());

for (Component component : frame.getLayeredPane().getComponents()) {
System.out.println("*** " + component.getName());
}
}

}

: