看了《Core Java》上的Swing编程都是先将当前的Frame调用getContentPane()取得内容窗格,再将实现的JPanel插进去。不过直接用JFrame的add()函数好像也能实现啊?两种方法有什么不同吗?

解决方案 »

  1.   

    如果你编一个只有对话框的程序(大部分是玩具)Dialog的构造方法大都需指明所属窗体,这时怎么办,就需要用getContentPane()
      

  2.   

    个人猜测应该是JFrame重载了Container的add方法吧
    awt中的Frame就不必此举
      

  3.   

    说起这个问题~
    我在eclipse写
    JFrame.add(new Button())的时候并不会提示错误,但在编译的时候就同不过。好像一定要写成getContentPane().add(new Button())才能编译通过。但Frame就能直接写Frame.add(new Button()),估计这个就是swing比awt好的地方,可能是sun发现直接用Frame.add(new Button())可能会引起其他安全隐患吧~
      

  4.   

    看看jdk文档中的Window和JRootPane,
    里面有图形提示, 不同的内容分别应该添加到那些pane上.