模块  java.desktop
软件包  java.awt

Class BorderLayout

  • 实现的所有接口
    LayoutManagerLayoutManager2Serializable

    public class BorderLayout
    extends Object
    implements LayoutManager2, Serializable
    边框布局布置容器,安排和调整其组件的大小以适应五个区域:北,南,东,西和中心。 每个区域可以含有不超过一个部件,并且通过相应的常数确定: NORTHSOUTHEASTWEST ,和CENTER 将组件添加到具有边框布局的容器时,请使用以下五个常量之一,例如:
      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_START ,和LINE_END 在容器中,其ComponentOrientation被设置为ComponentOrientation.LEFT_TO_RIGHT ,这些常数映射到NORTHSOUTHWEST ,和EAST分别。

    对于与以前版本的兼容性, BorderLayout还包括相对定位常数BEFORE_FIRST_LINEAFTER_LAST_LINEBEFORE_LINE_BEGINSAFTER_LINE_ENDS 这些等同于PAGE_STARTPAGE_ENDLINE_STARTLINE_END分别。 为了与其他组件使用的相对定位常数保持一致,后一常数是优选的。

    混合绝对和相对定位常数会导致不可预测的结果。 如果使用这两种类型,则相对常量优先。 例如,如果在方向为LEFT_TO_RIGHT的容器中同时使用NORTHPAGE_START常量添加组件,则只会布置PAGE_START

    注意:目前, BorderLayout不支持垂直方向。 容器的ComponentOrientation上的isVertical设置未得到遵守。

    组件根据其优选尺寸和容器尺寸的限制来布置。 NORTHSOUTH组件可以水平拉伸; EASTWEST组件可以垂直拉伸; CENTER组件可以水平和垂直拉伸以填充剩余的空间。

    以下是使用BorderLayout布局管理器布局的applet中的五个按钮的示例:

    演示BorderLayout的小程序的图。 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);
       }
     }
     

    从以下版本开始:
    1.0
    另请参见:
    Container.add(String, Component)ComponentOrientationSerialized Form
    • 字段详细信息

      • 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常数字段值
    • 构造方法详细信息

      • BorderLayout

        public BorderLayout()
        构造一个新的边框布局,组件之间没有间隙。
      • BorderLayout

        public BorderLayout​(int hgap,
                            int vgap)
        构造具有组件之间指定间隙的边框布局。 水平间隙由hgap指定,垂直间隙由vgap指定。
        参数
        hgap - 水平间隙。
        vgap - 垂直间隙。
    • 方法详细信息

      • getHgap

        public int getHgap()
        返回组件之间的水平间隙。
        结果
        组件之间的水平间隙
        从以下版本开始:
        1.1
      • setHgap

        public void setHgap​(int hgap)
        设置组件之间的水平间隙。
        参数
        hgap - 组件之间的水平间隙
        从以下版本开始:
        1.1
      • getVgap

        public int getVgap()
        返回组件之间的垂直间隙。
        结果
        组件之间的垂直间隙
        从以下版本开始:
        1.1
      • setVgap

        public void setVgap​(int vgap)
        设置组件之间的垂直间隙。
        参数
        vgap - 组件之间的垂直间隙
        从以下版本开始:
        1.1
      • addLayoutComponent

        public void addLayoutComponent​(Component comp,
                                       Object constraints)
        使用指定的约束对象将指定的组件添加到布局中。 对于边界布局,约束必须是以下常量之一: NORTHSOUTHEASTWEST ,或CENTER

        大多数应用程序不直接调用此方法。 使用具有相同参数类型的Container.add方法将组件添加到容器时,将调用此方法。

        Specified by:
        addLayoutComponent接口 LayoutManager2
        参数
        comp - 要添加的组件。
        constraints - 一个对象,指定将组件添加到布局的方式和位置。
        异常
        IllegalArgumentException - 如果约束对象不是字符串,或者它不是五个指定常量之一。
        从以下版本开始:
        1.1
        另请参见:
        Container.add(java.awt.Component, java.lang.Object)
      • addLayoutComponent

        @Deprecated
        public void addLayoutComponent​(String name,
                                       Component comp)
        Deprecated.
        replaced by addLayoutComponent(Component, Object).
        从界面复制的说明: LayoutManager
        如果布局管理器使用每个组件的字符串,则将组件 comp添加到布局中,并将其与 name指定的字符串相关联。
        Specified by:
        addLayoutComponent接口 LayoutManager
        参数
        name - 要与组件关联的字符串
        comp - 要添加的组件
      • 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_START ,和LINE_END优先于与所述显式约束添加的组分NORTHSOUTHWEST ,和EAST Container的组件方向用于确定添加了LINE_STARTLINE_END的组件的位置。
        参数
        constraints -所需的绝对位置,一个 CENTERNORTHSOUTHEASTWEST
        target - Container用于根据目标 Container的组件方向获取约束位置。
        结果
        给定位置的组件,如果位置为空, null
        异常
        IllegalArgumentException - 如果约束对象不是五个指定常量之一
        NullPointerException - 如果target参数为null
        从以下版本开始:
        1.5
        另请参见:
        addLayoutComponent(java.awt.Component, java.lang.Object)
      • getLayoutAlignmentX

        public float getLayoutAlignmentX​(Container parent)
        返回沿x轴的对齐方式。 这指定了组件相对于其他组件的对齐方式。 该值应为0到1之间的数字,其中0表示沿原点对齐,1表示距离原点最远,0.5表示居中等。
        Specified by:
        getLayoutAlignmentX在界面 LayoutManager2
        参数
        parent - 目标容器
        结果
        x轴对齐偏好
      • getLayoutAlignmentY

        public float getLayoutAlignmentY​(Container parent)
        返回沿y轴的对齐方式。 这指定了组件相对于其他组件的对齐方式。 该值应为0到1之间的数字,其中0表示沿原点对齐,1表示距离原点最远,0.5表示居中等。
        Specified by:
        getLayoutAlignmentY在界面 LayoutManager2
        参数
        parent - 目标容器
        结果
        y轴对齐偏好
      • invalidateLayout

        public void invalidateLayout​(Container target)
        使布局无效,表明如果布局管理器缓存了信息,则应将其丢弃。
        Specified by:
        invalidateLayout在界面 LayoutManager2
        参数
        target - 目标容器
      • layoutContainer

        public void layoutContainer​(Container target)
        使用此边框布局布置容器参数。

        此方法实际上BorderLayout指定容器中的组件,以满足此BorderLayout对象的约束。 NORTHSOUTH组件(如果有)分别放置在容器的顶部和底部。 然后将WESTEAST组件分别放置在左侧和右侧。 最后, CENTER对象放置在中间的任何剩余空间中。

        大多数应用程序不直接调用此方法。 当容器调用其doLayout方法时,将调用doLayout方法。

        Specified by:
        layoutContainer在界面 LayoutManager
        参数
        target - 要在其中执行布局的容器。
        另请参见:
        ContainerContainer.doLayout()
      • toString

        public String toString()
        返回此边框布局状态的字符串表示形式。
        重写:
        toString在类 Object
        结果
        此边框布局的字符串表示形式。