ASFrame asf=new ASFrame("MyFrame");
        asf.setBackground(Color.CYAN);
        asf.setLayout(null);
        asf.setBounds(250, 150, 1000, 600);
        asf.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel=new JPanel();
panel.setName("MyPanel");
panel.setBounds(0, 0, 1000, 580);
panel.setLayout(null);
panel.setBackground(new Color(64,98,123));
asf.add(panel);
asf.setVisible(true);System.out.println(asf.getComponents()[0].getName());按说应该要答应出 MyPanel 这个字符串出来的,但是却没有。求解释!!
我往panel里面加入label什么的确可以取出来

解决方案 »

  1.   

    看完下面这个程序的输出你就明白为什么没有了,*^_^*
    import java.awt.Container;import javax.swing.JButton;
    import javax.swing.JFrame;public class Test {
        public static void main(String[] args) {
            JFrame frame = new JFrame();
            
            JButton button = new JButton("Button");
            frame.getContentPane().add(button);        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(200, 200);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
            
            for (Container parent = button; parent != null; parent = parent.getParent()) {
                System.out.println(parent.getClass().getName());
            }
        }
    }输出:
    javax.swing.JButton
    javax.swing.JPanel
    javax.swing.JLayeredPane
    javax.swing.JRootPane
    javax.swing.JFrame
      

  2.   

    不要搞GUI了,oracle都说了,不管这块了。