JFrame的BorderLayout


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布局

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM