前文講解了JFrame,、JPanel,,其中已經(jīng)涉及到了空布局的使用。Java雖然可以以像素為單位對組件進(jìn)行精確的定位,,但是其在不同的系統(tǒng)中將會(huì)有一定的顯示差異,,使得顯示效果不盡相同,為此java提供了布局管理器,,以使編寫的圖形界面具有良好的平臺(tái)無關(guān)性,。
注意:所有的布局管理器均是針對容器來使用的,包括頂層容器和中間容器,。
一,、布局管理器所屬類包
二,、容器的默認(rèn)布局管理器 各容器都有默認(rèn)的布局管理,,見下表:
三、FlowLayout(流式布局) 使用FlowLayout布局方式的容器中組件按照加入的先后順序按照設(shè)置的對齊方式(居中,、左對齊,、右對齊)從左向右排列,一行排滿(即組件超過容器寬度后)到下一行開始繼續(xù)排列,。 1,、流式布局特征如下: l 組件按照設(shè)置的對齊方式進(jìn)行排列 l 不管對齊方式如何,,組件均按照從左到右的方式進(jìn)行排列,一行排滿,,轉(zhuǎn)到下一行,。(比如按照右對齊排列,第一個(gè)組件在第一行最右邊,,添加第二個(gè)組件時(shí),,第一個(gè)組件向左平移,第二個(gè)組件變成該行最右邊的組件,,這就是從左向右方式進(jìn)行排列)
2,、流式布局FlowLayout類的常用構(gòu)造函數(shù)和方法
3,、FlowLayout 布局應(yīng)用代碼段舉例 1) 設(shè)置FlowLayout 布局 JFrame fr=new JFrame( ); FlowLayout flow=new FlowLayout( ); fr.setLayout(flow); 上面的語句可以簡化成: 2) 設(shè)置框架fr為組件左對齊的FlowLayout布局 fr.setLayout(newFlowLayout(FlowLayout.LEFT)); 3) 設(shè)置框架fr為組件左對齊的FlowLayout布局,,并且組件的水平間距為20像素,垂直間距為40像素,。 fr.setLayout(new FlowLayout(FlowLayout.LEFT,20,40));
實(shí)例:對齊方式 // FlowLayoutDemo.java importjavax.swing.*; importjava.awt.*; public classFlowLayoutDemo extends JFrame { public FlowLayoutDemo() { //設(shè)置窗體為流式布局,,無參數(shù)默認(rèn)為居中對齊 setLayout(new FlowLayout()); //設(shè)置窗體中顯示的字體樣式 setFont(new Font("Helvetica",Font.PLAIN, 14)); //將按鈕添加到窗體中 getContentPane().add(newJButton("Button 1")); getContentPane().add(new JButton("Button 2")); getContentPane().add(new JButton("Button3")); getContentPane().add(newJButton("Button 4")); } public static void main(String args[]) { FlowLayoutDemo window = newFlowLayoutDemo(); window.setTitle("流式布局"); //該代碼依據(jù)放置的組件設(shè)定窗口的大小使之正好能容納你放置的所有組件 window.pack(); window.setVisible(true); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setLocationRelativeTo(null); //讓窗體居中顯示 } }
程序執(zhí)行結(jié)果如下圖所示,生成了一個(gè)居中顯示的窗體,,上面有四個(gè)按鈕,,留意按鈕之間,,按鈕與窗體的上下左右邊緣都是默認(rèn)5個(gè)像素的間距,。改變窗體大小,,如下圖所示,分別是原始界面,、拉寬原始界面,、拉窄原始界面,組件和界面的間距,。
修改程序代碼體會(huì)界面布局效果: setLayout(newFlowLayout()); 將上面源程序中的代碼更改如下,,然后做出如下更改: setLayout(newFlowLayout(0)); //組件左對齊 setLayout(newFlowLayout(FlowLayout.RIGHT,10,15)); //組件右對齊,組件間水平間距為10像素,垂直間距為15像素 |
|