JFrame jframe = new JFrame("first jframe");
JPanel pane = new JPanel();
JLabel label = new JLabel("hello world");
pane.add(label);
            jframe.add(pane);
    jframe.setContentPane(pane);
    jframe.setSize(500, 500);
    jframe.setVisible(true);
jframe.add(pane);中的add()方法与 jframe.setContentPane(pane);中的 setContentPane();方法有什么区别?

解决方案 »

  1.   

    add(pane)方法实际上是把pane加到 contentPane 内容窗格上,而setContentPane(pane)是要把内容窗格替换为pane
      

  2.   

    补充一点:
    1、JFrame类默认的布局方式是BorderLayout,若是直接add(pane)的话,它会默认将pane加
    到BorderLayout.CENTER中;setContentPane(pane)是将pane替换为窗口当前的内容面板。
    所谓内容面板,可以这样获得:
    Container contentPane = jframe.getContentPane();
    直接调用JFrame类的add方法实际上就是contentPane的add方法。
      

  3.   

    区别在,add只是把控件加进容器中来,setContentPane,是让其显示
      

  4.   

    这实际是JDK的一个升级  在前低版本 则不可用add方法添加到顶层容器