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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
    

执行结果 :

以上是关于Java AWT 图形界面编程LayoutManager 布局管理器 ③ ( BorderLayout 布局 )的主要内容,如果未能解决你的问题,请参考以下文章

Java AWT 图形界面编程Container 容器总结

Java AWT 图形界面编程AWT 简介 ( AWT 核心类继承体系 )

java之 22天 GUI 图形界面编程

java之 22天 GUI 图形界面编程

java图形用户界面编程

Java图形用户界面编程