Swing中的組件是lightweight的,並且每一個組件都可以是容器。可以向任何一個容器中添加其他的組件。但是頂層容器類型的組件不能添加到任何其他的組件。此外一個Swing組件要想在屏幕上顯示出來,最終都必須由一個頂層容器來容納。
構建複雜的用戶界面時,常常使用多個JPanel來組織各種的GUI組件,然後將這些面板添加到內容窗格(contentPane)中。爲此程序設計人員呢,一般只需要考慮兩中容器的佈局管理器。面板的默認佈局管理器是流佈局管理器(FlowLayout),內容窗格的佈局管理器是邊框佈局管理器(BorderLayout)。如果面板和內容窗格的佈局管理器無法滿足需求,則可以通過setLayout(a NewLayout)方法來改變其佈局管理器,方法setLayout()的參數是一個佈局管理器對象。