java布局學習 (一),java布局學習

來源:互聯網
上載者:User

java布局學習 (一),java布局學習

  Java 程式通過jvm可以很好的移植到其他平台上,但是java 產生的圖形介面樣式,在不使用布局的情況下,往往需要重新設定大小,才能在新的平台上調整到最佳樣式。這是由於組件的最佳大小 往往是與平台相關的。不同平台上,相同的內容大小可能不一樣.java專門提供了LayoutManager(布局管理器)來更好的進行布局管理,使組件的大小和位置調整到最佳。(包括控制項無遮擋,無冗餘空間)。

(一) 再開始講解布局之前,這裡先普及一下關於布局中的一些常用知識。

1、容器 Container 做過圖形介面繪製工作的人基本都知道這個容器的概念。如果第一次接觸的話,可以簡單的直接把他理解為是一塊面板,可以在上面畫控制項的東西。 常用的Container 包括:window panel scrollPane 其中Window 又包括 Frame(表單) Dialog(對話方塊)

2、對容器的布局設定 Container.setLayoutManager(new layoutManager());

 

(二) Java  常用的有 5+1+1種布局。

1)其中5代表 awt布局有5種分別是 FlowLayout 、BorderLayout、GridLayout、GridBagLayout、CardLayout    下邊依次來介紹每種布局    

(1)FowLayout 流布局 

  什麼是流布局呢,flow 代表流 水流,FowLayout也就是就是(防盜串連:本文首發自http://www.cnblogs.com/jilodream/ )控制項就像流水(隊列)一樣向某個排列,當遇到邊界的時候,就折回從下一行繼續排隊。就像軍訓的時候人員一排一排的站好,當一排人數滿的時候,就另起一行繼續排隊。

預設情況下,FowLayout 布局管理器都是從左向右排列所有組件的。

樣式如

常用的建構函式有三種

FowLayout()

FowLayout(int align)

FowLayout(int align, int hgap, int vgap)

參數解釋:

1、其中align 代表的是對齊,包括三種,值作為靜態常量儲存在 FlowLayout中了

FlowLayout.LEFT 從左向靠右對齊

FlowLayout.RIGHT從右向靠左對齊

FlowLayout.CENTER從中間向兩邊對齊

前兩種類似于軍訓的向左看齊、向右看齊,最後一種類似於照相時,以每排中間為基準,兩邊向中間靠攏。

2、hgap,控制項之間的水平間距 ps.注意此處及下文中的間距都是指的任意一個控制項與其周邊控制項控制項的水平和垂直的距離

3、vgap,控制項之間的垂直間距 

 1 import java.awt.FlowLayout;    2 import javax.swing.JFrame;    3 import javax.swing.JButton;    4     5     6 public class FlowLayoutDemo 7 {    8     public static void main(String[] args) 9     {   10         JFrame f=new JFrame("FlowLayout");   11         f.setLayout(new FlowLayout());   12         for(int i=0;i<7;i++)13         {   14             JButton btn=new JButton("Button"+i);   15             f.add(btn);   16         }   17         f.setSize(300,150);   18         f.setVisible(true);   19         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   20     }   21 }

顯示效果:

2)BorderLayout  邊框布局

Bordern n.邊境;邊界;國界 BorderLayout 也就是把容器通過邊界劃分成幾個地區,這幾個地區各自始終存在, 並且數量始終為5個:東、西、南、北、中(也就是 EAST/WEST/SOUTH/NORTH/CENTER),地區的相對位置如.添加的控制項可以被指定放置在地區中的任何一個位置。

這個布局有四點需要注意

1、當布局的大小發生調整時 NORTH/SOUTH/CENTER進行水平調整 EAST/WEST/CENTER進行垂直調整 比如說拉寬表單,那麼只有NORTH/SOUTH/CENTER 這三個地區的寬度會變大,WEST和EAST的寬度不發生改變

2、當向BorderLayout布局的容器中添加控制項時,需要指定控(防盜串連:本文首發自http://www.cnblogs.com/jilodream/ )件要被放置在哪個地區中。否則,系統方法會預設將該控制項放置在center地區。

3、每個地區只能添加一個控制項或者一個容器。如果反覆添加,後續添加的控制項會覆蓋前邊添加的控制項。

4、Frame、Dialog、ScrollPane預設使用的都是這個布局,所以直接向這幾個容器中添加控制項,最終只會顯示一個控制項

常用的建構函式有兩種

BorderLayout()

BorderLayout(int hgap, int vgap)

ps. hgap,地區之間的水平間距。vgap,地區之間的垂直間距。

 1 import java.awt.BorderLayout;    2 import javax.swing.JFrame;    3 import javax.swing.JButton;    4     5     6 public class BorderLayoutDemo  7 {    8     public static void main(String[] args)  9     {   10         JFrame f=new JFrame("BorderLayout");   11         JButton btn=new JButton("BorderLayout.NORTH");   12         f.add(btn,BorderLayout.NORTH); //NORTH、SOUTH、EAST、WEST、CENTER在BorderLayout中被設定為靜態變數了13         btn=new JButton("BorderLayout.SOUTH");   14         f.add(btn,BorderLayout.SOUTH);   15         btn=new JButton("BorderLayout.EAST");   16         f.add(btn,BorderLayout.EAST);   17         btn=new JButton("BorderLayout.West");   18         f.add(btn,BorderLayout.WEST);   19         btn=new JButton("BorderLayout.CENTER");   20         f.add(btn,BorderLayout.CENTER);   21         f.pack();   22         f.setVisible(true);   23         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   24     }   25 } 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.