關於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的內容面板