|
前文講解了JFrame、JPanel,其中已經(jīng)涉及到了空布局的使用。Java雖然可以以像素為單位對組件進行精確的定位,但是其在不同的系統(tǒng)中將會有一定的顯示差異,使得顯示效果不盡相同,為此java提供了布局管理器,以使編寫的圖形界面具有良好的平臺無關(guān)性。
注意:所有的布局管理器均是針對容器來使用的,包括頂層容器和中間容器。
一、布局管理器所屬類包
二、容器的默認(rèn)布局管理器 各容器都有默認(rèn)的布局管理,見下表:
三、FlowLayout(流式布局) 使用FlowLayout布局方式的容器中組件按照加入的先后順序按照設(shè)置的對齊方式(居中、左對齊、右對齊)從左向右排列,一行排滿(即組件超過容器寬度后)到下一行開始繼續(xù)排列。 1、流式布局特征如下: l 組件按照設(shè)置的對齊方式進行排列 l 不管對齊方式如何,組件均按照從左到右的方式進行排列,一行排滿,轉(zhuǎ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));
實例:對齊方式 // 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é)果如下圖所示,生成了一個居中顯示的窗體,上面有四個按鈕,留意按鈕之間,按鈕與窗體的上下左右邊緣都是默認(rèn)5個像素的間距。改變窗體大小,如下圖所示,分別是原始界面、拉寬原始界面、拉窄原始界面,組件和界面的間距。
修改程序代碼體會界面布局效果: setLayout(newFlowLayout()); 將上面源程序中的代碼更改如下,然后做出如下更改: setLayout(newFlowLayout(0)); //組件左對齊 setLayout(newFlowLayout(FlowLayout.RIGHT,10,15)); //組件右對齊,組件間水平間距為10像素,垂直間距為15像素 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|