Pane和Panel的含義是不一樣的:
Pane,窗格
Panel,面板
pane是Java中的一個控件,是不具備包含其他控件的功能的;而panel雖然也是一個控件,但是它還有一個身份就是布局,它可以管理其他的控件。
Pane指窗口中可以獨立滾動的子部分,如果你在Word中使用屏幕分割的功能,那么分割出的兩個獨立部分就是Pane。

而Panel是用來分組控件和其它對象的,典型的例子是工具條中用來分組按鈕的區域(我用紅色方框圈起來的部分,當然,下圖中不只有一個Panel)。

關於setContentPane()和getContentPane()的應用
我們可以在 JFrame 對象中添加 AWT 或者 Swing 組件。但是,雖然它有 add 方法,卻不能直接用於添加組件,否則會拋出異常——不信就試試。造成這個現象的原因只有一個解釋:JFrame 不是一個容器,它只是一個框架。那么,應該怎么添加組件呢?
JFrame 有一個 Content Pane,窗口能顯示的所有組件都是添加在這個 Content Pane 中。JFrame 提供了兩個方法:getContentPane 和 setContentPane 就是用於獲取和設置其 Content Pane 的。
對JFrame添加組件有兩種方式:
1)用getContentPane()方法獲得JFrame的內容面板,再對其加入組件:frame.getContentPane().add(childComponent)
2)建立一個Jpanel或JDesktopPane之類的中間容器,把組件添加到容器中,用setContentPane()方法把該容器置為JFrame的內容面板:
JPanel contentPane=new JPanel();
……//把其它組件添加到Jpanel中;
frame.setContentPane(contentPane);
//把contentPane對象設置成為frame的內容面板