JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 BorderLayout

java.lang.Object
  繼承者 java.awt.BorderLayout
所有已實作的介面:
LayoutManager, LayoutManager2, Serializable

public class BorderLayout
extends Object
implements LayoutManager2, Serializable

這是一個佈置容器的邊框佈局,它可以對容器元件進行安排,並調整其大小,使其符合下列五個區域:北、南、東、西、中。每個區域最多只能包含一個元件,並通過相應的常數進行標識:NORTHSOUTHEASTWESTCENTER。當使用邊框佈局將一個元件添加到容器中時,要使用這五個常數之一,例如:

    Panel p = new Panel();
    p.setLayout(new BorderLayout());
    p.add(new Button("Okay"), BorderLayout.SOUTH);
 
為了方便起見,BorderLayout 將缺少字元串說明的情況解釋為常數 CENTER
    Panel p2 = new Panel();
    p2.setLayout(new BorderLayout());
    p2.add(new TextArea());  // Same as p.add(new TextArea(), BorderLayout.CENTER);
 

此外,BorderLayout 支持相對定位常數 PAGE_STARTPAGE_ENDLINE_STARTLINE_END。在 ComponentOrientation 設置為 ComponentOrientation.LEFT_TO_RIGHT 的容器中,這些常數分別映射到 NORTHSOUTHWESTEAST

為了與以前的版本相容,BorderLayout 還包括相對定位常數 BEFORE_FIRST_LINEAFTER_LAST_LINEBEFORE_LINE_BEGINSAFTER_LINE_ENDS。這些常數分別等同於 PAGE_STARTPAGE_ENDLINE_STARTLINE_END。為了與其他元件使用的相對定位常數一致,應優先使用後一組常數。

將絕對定位常數與相對定位常數混合會產生無法預料的結果。如果兩種型別的常數都使用,則優先採用相對常數。例如,如果同時使用 NORTHPAGE_START 常數在方向性為 LEFT_TO_RIGHT 的容器中添加元件,則只體現 PAGE_START 佈局。

註:目前,在 Java 2 Platform v1.2 中,BorderLayout 不支持垂直方向。不考慮容器的 ComponentOrientationisVertical 設置。

根據其首選大小和容器大小的約束 (constraints) 對元件進行佈局。NORTHSOUTH 元件可以在水平方向上拉伸;而 EASTWEST 元件可以在垂直方向上拉伸;CENTER 元件可同時在水平和垂直方向上拉伸,從而填充所有剩餘空間。

以下是一個使用 BorderLayout 佈局管理器的例子,它對一個 applet 中的五個按鈕進行佈局:

描述 BorderLayout 的 applet 的圖表。 
BorderLayout 的每個部分都包含一個對應於它在佈局中位置的 Button,它為以下五個常數之一: 
North、West、Center、East 或 South。

此 applet 的程式碼如下:


 import java.awt.*;
 import java.applet.Applet;

 public class buttonDir extends Applet {
   public void init() {
     setLayout(new BorderLayout());
     add(new Button("North"), BorderLayout.NORTH);
     add(new Button("South"), BorderLayout.SOUTH);
     add(new Button("East"), BorderLayout.EAST);
     add(new Button("West"), BorderLayout.WEST);
     add(new Button("Center"), BorderLayout.CENTER);
   }
 }

從以下版本開始:
JDK1.0
另請參見:
Container.add(String, Component), ComponentOrientation, 序列化表格

欄位摘要
static String AFTER_LAST_LINE
          與 PAGE_END 同義。
static String AFTER_LINE_ENDS
          與 LINE_END 同義。
static String BEFORE_FIRST_LINE
          與 PAGE_START 同義。
static String BEFORE_LINE_BEGINS
          與 LINE_START 同義。
static String CENTER
          中間區域的佈局約束(容器中央)。
static String EAST
          東區域的佈局約束(容器右邊)。
static String LINE_END
          元件出現在佈局的行方向的結尾處。
static String LINE_START
          元件出現在佈局的行方向的開始處。
static String NORTH
          北區域的佈局約束(容器頂部)。
static String PAGE_END
          元件出現在最後一行佈局內容之後。
static String PAGE_START
          元件出現在第一行佈局內容之前。
static String SOUTH
          南區域的佈局約束(容器底部)。
static String WEST
          西區域的佈局約束(容器左邊)。
 
建構子摘要
BorderLayout()
          建構一個元件之間沒有間距的新邊框佈局。
BorderLayout(int hgap, int vgap)
          建構一個具有指定元件間距的邊框佈局。
 
方法摘要
 void addLayoutComponent(Component comp, Object constraints)
          使用指定的約束物件將指定元件添加到佈局中。
 void addLayoutComponent(String name, Component comp)
          已過時。 addLayoutComponent(Component, Object) 取代。
 Object getConstraints(Component comp)
          獲取指定元件的約束
 int getHgap()
          返回元件之間的水平間距。
 float getLayoutAlignmentX(Container parent)
          返回沿 x 軸的對齊方式。
 float getLayoutAlignmentY(Container parent)
          返回沿 y 軸的對齊方式。
 Component getLayoutComponent(Container target, Object constraints)
          基於目標 Container 的元件方向,返回給定約束位置對應的元件。
 Component getLayoutComponent(Object constraints)
          獲取使用給定約束添加的元件。
 int getVgap()
          返回元件之間的垂直間距。
 void invalidateLayout(Container target)
          使佈局無效,指示如果佈局管理器快取記憶體了資訊,則應該將其丟棄。
 void layoutContainer(Container target)
          使用此邊框佈局對容器參數進行佈局。
 Dimension maximumLayoutSize(Container target)
          在給出指定目標容器中的元件的前提下,返回此佈局的最大尺寸。
 Dimension minimumLayoutSize(Container target)
          使用此佈局管理器確定 target 容器的最小大小。
 Dimension preferredLayoutSize(Container target)
          基於容器中的元件,使用此佈局管理器確定 target 容器的首選大小。
 void removeLayoutComponent(Component comp)
          從此邊框佈局中移除指定元件。
 void setHgap(int hgap)
          設置元件之間的水平間距。
 void setVgap(int vgap)
          設置元件之間的垂直間距。
 String toString()
          返回此邊框佈局的狀態的字元串表示形式。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

NORTH

public static final String NORTH
北區域的佈局約束(容器頂部)。

另請參見:
常數欄位值

SOUTH

public static final String SOUTH
南區域的佈局約束(容器底部)。

另請參見:
常數欄位值

EAST

public static final String EAST
東區域的佈局約束(容器右邊)。

另請參見:
常數欄位值

WEST

public static final String WEST
西區域的佈局約束(容器左邊)。

另請參見:
常數欄位值

CENTER

public static final String CENTER
中間區域的佈局約束(容器中央)。

另請參見:
常數欄位值

BEFORE_FIRST_LINE

public static final String BEFORE_FIRST_LINE
與 PAGE_START 同義。為了與以前版本相容而存在。首選 PAGE_START。

從以下版本開始:
1.2
另請參見:
PAGE_START, 常數欄位值

AFTER_LAST_LINE

public static final String AFTER_LAST_LINE
與 PAGE_END 同義。為了與以前版本相容而存在。首選 PAGE_END。

從以下版本開始:
1.2
另請參見:
PAGE_END, 常數欄位值

BEFORE_LINE_BEGINS

public static final String BEFORE_LINE_BEGINS
與 LINE_START 同義。為了與以前版本相容而存在。首選 LINE_START。

從以下版本開始:
1.2
另請參見:
LINE_START, 常數欄位值

AFTER_LINE_ENDS

public static final String AFTER_LINE_ENDS
與 LINE_END 同義。為了與以前版本相容而存在。首選 LINE_END。

從以下版本開始:
1.2
另請參見:
LINE_END, 常數欄位值

PAGE_START

public static final String PAGE_START
元件出現在第一行佈局內容之前。對於 Western,方向是從左到右、從上到下,等同於 NORTH。

從以下版本開始:
1.4
另請參見:
Component.getComponentOrientation(), 常數欄位值

PAGE_END

public static final String PAGE_END
元件出現在最後一行佈局內容之後。對於 Western,方向是從左到右、從上到下,等同於 SOUTH。

從以下版本開始:
1.4
另請參見:
Component.getComponentOrientation(), 常數欄位值

LINE_START

public static final String LINE_START
元件出現在佈局的行方向的開始處。對於 Western,方向是從左到右、從上到下,等同於 WEST。

從以下版本開始:
1.4
另請參見:
Component.getComponentOrientation(), 常數欄位值

LINE_END

public static final String LINE_END
元件出現在佈局的行方向的結尾處。對於 Western,方向是從左到右、從上到下,等同於 EAST。

從以下版本開始:
1.4
另請參見:
Component.getComponentOrientation(), 常數欄位值
建構子詳細資訊

BorderLayout

public BorderLayout()
建構一個元件之間沒有間距的新邊框佈局。


BorderLayout

public BorderLayout(int hgap,
                    int vgap)
建構一個具有指定元件間距的邊框佈局。水平間距由 hgap 指定,垂直間距由 vgap 指定。

參數:
hgap - 水平間距。
vgap - 垂直間距。
方法詳細資訊

getHgap

public int getHgap()
返回元件之間的水平間距。

從以下版本開始:
JDK1.1

setHgap

public void setHgap(int hgap)
設置元件之間的水平間距。

參數:
hgap - 元件之間的水平間距
從以下版本開始:
JDK1.1

getVgap

public int getVgap()
返回元件之間的垂直間距。

從以下版本開始:
JDK1.1

setVgap

public void setVgap(int vgap)
設置元件之間的垂直間距。

參數:
vgap - 元件之間的垂直間距
從以下版本開始:
JDK1.1

addLayoutComponent

public void addLayoutComponent(Component comp,
                               Object constraints)
使用指定的約束物件將指定元件添加到佈局中。對於邊框佈局,約束必須是以下約束之一:NORTHSOUTHEASTWESTCENTER

大多數應用程序並不直接調用此方法。當使用 Container.add 方法將元件添加到容器中時,可以使用相同的參數型別調用此方法。

指定者:
介面 LayoutManager2 中的 addLayoutComponent
參數:
comp - 要添加的元件。
constraints - 指定將元件添加到佈局中的方式和位置的物件。
拋出:
IllegalArgumentException - 如果約束物件不是一個字元串,或者它不是五種指定約束之一。
從以下版本開始:
JDK1.1
另請參見:
Container.add(java.awt.Component, java.lang.Object)

addLayoutComponent

@Deprecated
public void addLayoutComponent(String name,
                                          Component comp)
已過時。 addLayoutComponent(Component, Object) 取代。

從介面 LayoutManager 複製的描述
如果佈局管理器使用每元件字元串,則將元件 comp 添加到佈局,並將它與 name 指定的字元串關聯。

指定者:
介面 LayoutManager 中的 addLayoutComponent
參數:
name - 要與元件關聯的字元串
comp - 要添加的元件

removeLayoutComponent

public void removeLayoutComponent(Component comp)
從此邊框佈局中移除指定元件。當容器調用其 removeremoveAll 方法時,可調用此方法。大多數應用程序並不直接調用此方法。

指定者:
介面 LayoutManager 中的 removeLayoutComponent
參數:
comp - 要移除的元件。
另請參見:
Container.remove(java.awt.Component), Container.removeAll()

getLayoutComponent

public Component getLayoutComponent(Object constraints)
獲取使用給定約束添加的元件。

參數:
constraints - 所需的約束,它是 CENTERNORTHSOUTHWESTEASTPAGE_STARTPAGE_ENDLINE_STARTLINE_END 之一
返回:
給定位置上的元件;如果此位置為空,則返回 null
拋出:
IllegalArgumentException - 如果約束物件不是九個指定約束之一
從以下版本開始:
1.5
另請參見:
addLayoutComponent(java.awt.Component, java.lang.Object)

getLayoutComponent

public Component getLayoutComponent(Container target,
                                    Object constraints)
基於目標 Container 的元件方向,返回給定約束位置對應的元件。利用相對約束 PAGE_STARTPAGE_ENDLINE_STARTLINE_END 添加的元件優先於利用顯式約束 NORTHSOUTHWESTEAST 添加的元件。Container 的元件方向用於確定利用 LINE_STARTLINE_END 添加的元件的位置。

參數:
constraints - 所需的絕對位置,CENTERNORTHSOUTHEASTWEST 之一
target - Container,用來獲取基於目標 Container 元件方向的約束位置。
返回:
指定位置上的元件;如果此位置為空,則返回 null
拋出:
IllegalArgumentException - 如果約束物件不是五個指定約束之一
NullPointerException - 如果目標參數為 null
從以下版本開始:
1.5
另請參見:
addLayoutComponent(java.awt.Component, java.lang.Object)

getConstraints

public Object getConstraints(Component comp)
獲取指定元件的約束

參數:
comp - 要查詢的元件
返回:
指定元件的約束;如果元件為 null 或不在此佈局中,則返回 null
從以下版本開始:
1.5
另請參見:
addLayoutComponent(java.awt.Component, java.lang.Object)

minimumLayoutSize

public Dimension minimumLayoutSize(Container target)
使用此佈局管理器確定 target 容器的最小大小。

當容器調用其 getMinimumSize 方法時,可以調用此方法。大多數應用程序並不直接調用此方法。

指定者:
介面 LayoutManager 中的 minimumLayoutSize
參數:
target - 在其中進行佈局的容器。
返回:
對指定容器的子元件進行佈局所需的最小尺寸。
另請參見:
Container, preferredLayoutSize(java.awt.Container), Container.getMinimumSize()

preferredLayoutSize

public Dimension preferredLayoutSize(Container target)
基於容器中的元件,使用此佈局管理器確定 target 容器的首選大小。

大多數應用程序並不直接調用此方法。容器調用其 getPreferredSize 方法時將調用此方法。

指定者:
介面 LayoutManager 中的 preferredLayoutSize
參數:
target - 在其中進行佈局的容器。
返回:
對指定容器的子元件進行佈局所需的首選尺寸。
另請參見:
Container, minimumLayoutSize(java.awt.Container), Container.getPreferredSize()

maximumLayoutSize

public Dimension maximumLayoutSize(Container target)
在給出指定目標容器中的元件的前提下,返回此佈局的最大尺寸。

指定者:
介面 LayoutManager2 中的 maximumLayoutSize
參數:
target - 需要對其進行佈局的元件
另請參見:
Container, minimumLayoutSize(java.awt.Container), preferredLayoutSize(java.awt.Container)

getLayoutAlignmentX

public float getLayoutAlignmentX(Container parent)
返回沿 x 軸的對齊方式。這指出了相對於其他元件將如何排列該元件。該值應該在 0 到 1 之間,其中 0 表示根據原點進行對齊,1 表示根據距原點最遠的點對齊,0.5 表示居中對齊等等。

指定者:
介面 LayoutManager2 中的 getLayoutAlignmentX

getLayoutAlignmentY

public float getLayoutAlignmentY(Container parent)
返回沿 y 軸的對齊方式。這指出了相對於其他元件將如何排列該元件。該值應該在 0 到 1 之間,其中 0 表示根據原點進行對齊,1 表示根據距原點最遠的點對齊,0.5 表示居中對齊等等。

指定者:
介面 LayoutManager2 中的 getLayoutAlignmentY

invalidateLayout

public void invalidateLayout(Container target)
使佈局無效,指示如果佈局管理器快取記憶體了資訊,則應該將其丟棄。

指定者:
介面 LayoutManager2 中的 invalidateLayout

layoutContainer

public void layoutContainer(Container target)
使用此邊框佈局對容器參數進行佈局。

為了滿足此 BorderLayout 物件的約束條件,此方法實際上會重塑指定容器中的元件。NORTHSOUTH 元件(如果有)分別放置在容器的頂部和底部。WESTEAST 元件分別放置在容器的左邊和右邊。最後,CENTER 物件放置在中間的任何剩餘空間內。

大多數應用程序並不直接調用此方法。容器調用其 doLayout 方法時將調用此方法。

指定者:
介面 LayoutManager 中的 layoutContainer
參數:
target - 在其中進行佈局的容器。
另請參見:
Container, Container.doLayout()

toString

public String toString()
返回此邊框佈局的狀態的字元串表示形式。

覆寫:
類別 Object 中的 toString
返回:
此邊框佈局的字元串表示形式。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only