【Java AWT 图形界面编程】LayoutManager 布局管理器 ③ ( BorderLayout 布局 )





一、BorderLayout 布局



BorderLayout 布局Container 容器 分割成 5 个部分 , 分别是 :

  • WEST
  • NORTH
  • EAST
  • SOUTH
  • CENTER

每个部分的位置如下图所示 :

在这里插入图片描述

修改 使用了 BorderLayout 布局 的 Container 容器的大小时 :

  • 水平调整 : NORTH , SOUTH , CENTER 部分可以进行 水平调整 ;
  • 垂直调整 : EAST , WEST , CENTER 部分可以进行 垂直调整 ;

也就是说 , 调整容器大小时 ,

  • NORTH 和 SOUTH 的高度是不变的 , 宽度可以改变 ;
  • EAST 和 WEST 的宽度是不变的 , 高度可以改变 ;
  • CENTER 区域的宽高都可以改变 ;

向 BorderLayout 布局 中添加 Component 组件 :

  • 组件添加区域 : 可以 指定添加的区域 , 如果没有指定则默认添加到 CENTER 区域 ;
  • 组件覆盖 : 向同一个区域添加组件 , 后放入的组件会覆盖先放入的组件 ;




二、BorderLayout 构造函数 API



BorderLayout 构造函数 API :

  • BorderLayout() : 创建 BorderLayout 布局管理器 , 使用 默认的 水平间距 和 垂直间距 ;
    /**
     * 构造一个新的边框布局
     * 组件之间无间隙。
     */
    public BorderLayout() {
        this(0, 0);
    }
  • BorderLayout() : 创建 BorderLayout 布局管理器 , 使用 指定的 水平间距 和 垂直间距 ;
    /**
     * 构造具有指定间距的边框布局
     * 组件之间。
     * 水平间隔由<code>hgap</code>指定
     * 垂直间隔由<code>vgap</code>指定。
     * @param   hgap   水平间隙。
     * @param   vgap   垂直间隙。
     */
    public BorderLayout(int hgap, int vgap) {
        this.hgap = hgap;
        this.vgap = vgap;
    }




三、BorderLayout 代码示例




1、BorderLayout 基本用法代码示例


代码示例 :

import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT 界面编程");
        
        // 创建 BorderLayout 布局管理器
        // 指定水平间距 50, 垂直间距 30
        BorderLayout borderLayout = new BorderLayout(50, 30);

        // Frame 容器设置流式布局
        frame.setLayout(borderLayout);

        // 添加多个组件
        frame.add(new Button("WEST"), BorderLayout.WEST);
        frame.add(new Button("NORTH"), BorderLayout.NORTH);
        frame.add(new Button("EAST"), BorderLayout.EAST);
        frame.add(new Button("SOUTH"), BorderLayout.SOUTH);
        frame.add(new Button("CENTER"), BorderLayout.CENTER);

        // 自定设置合适的大小
        frame.pack();

        frame.setVisible(true);
    }
}

执行效果 :

在这里插入图片描述

拖动改变该窗口的大小 , 发现 NORTH 和 SOUTH 的高度是不变的 , EAST 和 WEST 的宽度是不变的 ;
在这里插入图片描述


2、BorderLayout 区域占用代码示例


代码示例 :

import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT 界面编程");

        // 创建 BorderLayout 布局管理器
        // 指定水平间距 50, 垂直间距 30
        BorderLayout borderLayout = new BorderLayout(50, 30);

        // Frame 容器设置流式布局
        frame.setLayout(borderLayout);

        // 添加多个组件
        // 如果不向 EAST 和 WEST 中添加组件, 则该区域会被其它区域占用
        // 这里是被 CENTER 区域占用
        frame.add(new Button("NORTH"), BorderLayout.NORTH);
        frame.add(new Button("SOUTH"), BorderLayout.SOUTH);
        frame.add(new Button("CENTER"), BorderLayout.CENTER);

        // 自定设置合适的大小
        frame.pack();

        frame.setVisible(true);
    }
}

执行结果 :
在这里插入图片描述


3、BorderLayout 同一区域显示多个组件代码示例


代码示例 :

import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        Frame frame = new Frame("AWT 界面编程");

        // 创建 BorderLayout 布局管理器
        // 指定水平间距 50, 垂直间距 30
        BorderLayout borderLayout = new BorderLayout(50, 30);

        // Frame 容器设置流式布局
        frame.setLayout(borderLayout);

        // 添加多个组件
        // 如果不向 EAST 和 WEST 中添加组件, 则该区域会被其它区域占用
        // 这里是被 CENTER 区域占用
        frame.add(new Button("NORTH"), BorderLayout.NORTH);
        frame.add(new Button("SOUTH"), BorderLayout.SOUTH);
        frame.add(new Button("CENTER"), BorderLayout.CENTER);

        // 向默认区域添加多个组件
        Panel panel = new Panel();
        panel.add(new Button("按钮1"));
        panel.add(new Button("按钮2"));
        frame.add(panel);

        // 自定设置合适的大小
        frame.pack();

        frame.setVisible(true);
    }
}

执行结果 :
在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值