JFrame的默認布局就是BorderLayout,即將一個窗體划分為東西南北中五個板塊。
如果往其中添加組件,中間面板大小隨窗體大小變化,其余部分根據添加的組件的大小自適應。
容器變高,則North,South區域不變,West,East,Center區域變高
容器變寬,則West,East區域不變,North,South,Center區域變寬

注意,這種布局下,每個區域最多只能包含一個組件。
五個區域默認是看不到邊界線的,即距離為0.
如何設置間距?
BorderLayout(): 構造一個組件之間沒有間距(默認間距為0像素)的新邊框布局
BorderLayout(int hgap, int vgap) : 構造一個具有指定組件(hgap為橫向間距,vgap為縱向間距)間距的邊框布局
int getHgap() : 返回組件之間的水平間距。
int getVgap() :返回組件之間的垂直間距。
void removeLayoutComponent(Component comp): 從此邊框布局中移除指定組件。
void setHgap(int hgap):設置組件之間的水平間距。
void setVgap(int vgap) :設置組件之間的垂直間距。
那么如何控制這幾個板塊的高度與寬度?
我們發現setSize,setLocation,setBounds,或者setMaximumSize()和setMinimumSize()都達不到效果
需要使用setPreferredSize。
1.setPreferredSize需要在使用布局管理器的時候使用,布局管理器會獲取空間的preferredsize,因而可以生效。例如borderlayout在north中放入一個panel,panel的高度可以通過這樣實現:panel.setPreferredSize(new Dimension(0, 100));JFrame.getContentPane().add(panel,BorderLayout.SOUTH);這樣就設置了一個高度為100的panel,寬度隨窗口變化。
2.setSize,setLocation,setBounds方法需要在不使用布局管理器的時候使用,也就是setLayout(null)的時候可以使用這三個方法控制布局。
設置按鈕大小用setSize無效?
button.setPreferredSize(new Dimension(80,50));
這樣就可以了。
設置間隔?
設置組件的位置,左對齊,居中,右對齊?
重新設置為FlowLayout布局
