幾個基本的layout(一)

Flow layout:

派生於java.awt.flowlayout。將物件由左到右按順序放置在容器當中,物件大小按照其原有定義。

Border layout:

派生於java.awt.borderlayout,是window預設的layout manager,由於frame與dialog類別都繼承於window類,因此繼承frame的java視窗程式,其預設layout manager亦爲border layout。

Border layout將容器分爲東、西、南、北及中央五個區域,每一個區域只能放置一個物件。與flow layout不同,他會按照視窗的大小自動更改物件的大小。

還需要注意的是:

位於東西方向的物件,僅會向垂直方向放大縮小。

位於南北方向的物件,僅會向水平方向放大縮小。

位於中央的物件,會向兩個方向同時拉伸縮小。

Card layout:

派生於java.awt.cardlayout,物件將以卡片的方式,分層至於容器中,並以此僅允許顯示一層,以cardlayout配置物件時候,需針對每一層設定一個名稱,以便依次名稱顯示該層物件。

Grid layout:

Grid layour的類別爲java.awt.gridlayout,grid的意思爲 格子,它依照不同的行列數,將容器分成數個大小相同的區域,如同border layout一般,所配置的物件大小會因視窗或java applet大小的改變而有所改變,同時向垂直於水平方向放大或縮小,物件放置順序爲從左到右,由上而下,直到填滿所定義的行列格數爲止。

Grid bag layout:

其爲java AWT爲應對複雜度較高的物件配置所提供的layout manager  與之前所介紹的layout manager的差別在於,grid bag layout將容器分割爲數個小單元,而其所配置的物件,可自行定義其水平與垂直的加權比例,由此以決定所佔滿的單元的多少,因此在grid bag layout中,物件的大小不需要一致,而當容器大小改變的時候,也可依照其所定義的加權決定其變更的大小幅度。

雖然grid bag layout較爲彈性,但相對地在使用上也較爲困難,除了使用java.awt.gridbaglayout類別之外,另外需要配合java.awt.gridbagconstraints類別,設定各個物件的配置方式與限制。


發佈了20 篇原創文章 · 獲贊 27 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章