JLayeredPaneについてメモ
2008/12/09
2008/12/09
java
swing
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());
}
}
}
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());
}
}
}
: