1. 程式人生 > >Java中五種介面佈局類和實際中的使用

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文件)