Java中五種介面佈局類和實際中的使用
JPanel和JFrame之間的聯絡:
(JPanel)Panel是一個輕量級的容器,由於不是頂級的容器,故其必須放在(JFrame)Frame等高階容器上,這樣就可以在一個Frame(JFrame)上通過Panel和五種介面佈局管理器來構建複雜的應用程式介面。
下面來介紹一下五種介面佈局管理器:
1、 FlowLayout:
流式佈局用於安排有向流中的元件,流的方向取決於容器的componentOrientation屬性,它可能是以下兩個值中的一個:componentOrientation.LEFT_TO_RIGHT或componentOrientation.RIGHT_TO _ LEFT
流佈局一般用於安排面板中的按鈕。它使得按鈕呈水平放置,直到同一條線上再也沒有合適的按鈕。
2、 BorderLayout
這是一個佈置容器的邊框佈局,它可以對容器元件進行安排,並調整其大小,使其符合下列五個區域:北、南、東、西、中。每個區域最多隻能包含一個元件,並通過相應的常量進行標識:NORTH 、SOUTH 、EAST 、WEST 、CENTER。當使用邊框佈局將一個元件新增到容器中時,要使用五個常量之一,eg:
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new Button(“Clear”),BorderLayout.NORTH);
3、 GridLayout:
GridLayout類是一個佈局處理器,它以矩形網格形式對容器的元件進行佈置。容器被分為大小相等的矩形,一個矩形中放置一個元件。
例如,下面是一個將六個按鈕佈置到三行兩列中的 applet:
importjava.awt.*;
importjava.applet.Applet;
public classButtonGrid extends Applet {
public voidinit() {
setLayout(new GridLayout(3,2));
add(newButton("1"));
add(newButton("2"));
add(new Button("3"));
add(newButton("4"));
add(newButton("5"));
add(newButton("6"));
}
}
通過構造方法或 setRows 和 setColumns 方法將行數和列數都設定為非零值時,指定的列數將被忽略。列數通過指定的行數和佈局中的元件總數來確定。因此,例如,如果指定了三行和兩列,在佈局中添加了九個元件,則它們將顯示為三行三列。僅當將行數設定為零時,指定列數才對佈局有效。
4、 CardLayout
CardLayout物件是容器的佈局管理器。它將容器中的每個元件看作一張卡片。一次只能看到一張卡片,容器則充當卡片的堆疊。當容器第一次顯示時,第一個新增到CardLayout物件的元件為可見元件。
卡片的順序由元件物件本身在容器內部的順序決定。CardLayout定義了一組方法,這些方法允許應用程式按順序地瀏覽這些卡片,或者顯示指定的卡片。addLayoutComponent(java.awt.Component,java.lang.Object)方法可用於將一個字串識別符號與給定卡片關聯,以便進行快速隨機訪問。
5、 BoxLayout:
允許垂直或水平佈置多個元件的佈局管理器。這些元件將不包裝,因此舉例來說,垂直排列的元件在重新調整框架的大小時仍然被垂直排列。(此佈局由於還未怎麼使用過,詳細之處就不再介紹,詳情可參考API文件)