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

news2025/1/16 1:47:08

文章目录

  • 一、BorderLayout 布局
  • 二、BorderLayout 构造函数 API
  • 三、BorderLayout 代码示例
    • 1、BorderLayout 基本用法代码示例
    • 2、BorderLayout 区域占用代码示例
    • 3、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);
    }
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习PyTorch 之 DNN-二分类

本节开始说一下DNN分类的pytorch实现&#xff0c;先说一下二分类 流程还是跟前面一样 #mermaid-svg-7Bxg4CYlbKjYOMMf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7Bxg4CYlbKjYOMMf .error-icon{fill:#552222;}…

从校园到职场,听听他们的成长之路

背景介绍 这次分享主题是「从校园到职场 -- 我的成长之路」&#xff0c;视频内容可以查看 B 站链接&#xff1a;从校园到实习再到秋招。 上次的面试分享之后&#xff0c;阿卡拉提到关于刚毕业的学生也会有很多找工作的困扰&#xff0c;而且这个阶段能获取到的信息相对比较有限&…

Java API文档的使用详解

文章目录1. 概念2. 使用Java编程基础教程系列学会使用 API 文档是一个开发者基本的素养&#xff0c;而许多初学者并不会在意 API 文档的使用&#xff0c;甚至从来没有接触过&#xff0c;所以写下这篇文章探讨 API 文档的使用&#xff0c;希望能够帮助到你&#xff0c;先赞后看&…

正点原子嵌入式linux第二期

目录 第5讲 IMX6U芯片介绍 第6讲 6.1汇编LED驱动实验-原理分析 6.2 汇编LED驱动实验-汇编基本语法 ​编辑6.3 驱动编写 6.4 编写驱动 6.5烧写bin文件到SD卡并运行 第七讲 IMX启动方式&#xff08;没怎么听懂&#xff09; 7.1启动设备的选择 7.2 IVT表和BootData详解 7.3D…

从面试官的角度带你从源码分析关于vue(v2.7.10)的面试题

我们在面试的时候经常会被问到vue框架的原理类问题&#xff0c;我今天整理了一些常见问题和答案&#xff0c;希望有不正确之处还请指正。 1.new Vue时发生了什么 首先实例化一个对象&#xff0c;该对象执行init方法初始化生命周期等等&#xff0c;随后执行$mount方法开始生成v…

时间序列模型SCINet(代码解析)

前言 SCINet模型&#xff0c;精度仅次于NLinear的时间序列模型&#xff0c;在ETTh2数据集上单变量预测结果甚至比NLinear模型还要好。在这里还是建议大家去读一读论文&#xff0c;论文写的很规范&#xff0c;很值得学习&#xff0c;论文地址SCINet模型Github项目地址&#xff…

SpringBoot文件上传功能实现、异常处理

目录 一、文件上传 1、页面表单 2、文件上传代码 3、自动配置原理 二、异常处理 错误处理 1、默认规则 2、定制错误处理逻辑 3、异常处理自动配置原理 4、异常处理步骤流程 一、文件上传 1、页面表单 <form method"post" action"/upload" e…

详细实例说明+典型案例实现 对递归法进行全面分析 | C++

第二章 递归法 目录 ●第二章 递归法 ●前言 ●一、递归法是什么&#xff1f; 1.简要介绍 2.生活实例 ●二、递归法的典型案例——阶乘函数&斐波那契数列 1.阶乘函数 2.斐波那契数列 ●总结 前言 简单的来说&#xff0c;算法就是用计算机程序代码来实现数学…

static关键字的作用

目录 C语言中static关键字的作用 1.static关键字修饰局部变量 2.static关键字修饰全局变量 3.static关键字修饰函数 在C中static关键的作用 1.静态成员变量 2.静态成员函数 C语言中static关键字的作用 1.static关键字修饰局部变量 概念&#xff1a; static修饰局部变量就…

这才是2023年csdn最系统的网络安全学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

2. 认识O(logN)的排序

1. 递归 递归arr[L…R]范围上求最大值 流程分析如下: java代码: package paixu.class01;public class Code08_GetMax {public static void main(String[] args) {int[] arr {3,2,5,6,7,4};System.out.println(getMax(arr));}public static int getMax(int[] arr) {return p…

浅谈非类型模板参数、模板的特化

非类型模板参数 1.模板参数分类类型形参与非类型形参。 2.类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。类型参数也可以给缺省值 3.非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函…

FARO RevEng Software 22.3.9 Crack

FARO RevEng Software 22.3.9 用于反向工程的三维点云捕捉和网格生成 先进的 FARO RevEng 软件平台能为用户带来全面的数字设计体验。该反向工程软件有助于利用三维点云创建和编辑高质量的网格和 CAD 表面&#xff0c;以实现反向工程工作流程。然后&#xff0c;工业设计师可以利…

Zookeeper 集群安装

Zookeeper 集群 主机 IP SoftWare Port OS Myidnode1 192.168.230.128 apache-zookeeper-3.7.1 2181 Centos 7 1 node2 192.168.230.129 apache-zookeeper-3.7.1 2181 Centos 7 2 node3 192.168.230.130 apache-zookeeper-3.7.1 2181 Centos 7 31. 下载 Apache Downloads 下…

2022简单一年

牙齿软件决定开发的时间是2021年底&#xff0c; 老板说2022年任务是要开发牙齿咬合力的软件&#xff0c; 功能主要借鉴美国的一款软件,老板给了我一份软件的说明书&#xff0c; 包含了软件的所有功能。 看到软件第一感觉是&#xff0c; 做的确实是牛逼&#xff0c; 并且各…

【十 二】Netty 文件传输

概念介绍 文件是最常见的数据源之一&#xff0c;程序经常需要在文件中读取数据&#xff0c;也要将数据保存在文件中&#xff0c;进行持久化。 文件是计算机中一种基本的数据存储形式。即使计算机关机&#xff0c;文件的数据还是存在的&#xff0c;但是内存的数据就会丢失。 相…

联合证券|五定增项目同日被否 保荐机构该不该“背锅”?

一天之内5家上市公司定增一起被拒&#xff0c;这一音讯瞬间引发商场重视。 1月11日&#xff0c;浙江世宝、铭普光磁、胜华新材、日辰股份、振华科技等5家上市公司一起公告称&#xff0c;定增不被证监会受理&#xff0c;理由均是证监会以为请求资料不符合法定方式。 投行业界人…

18.Isaac教程--坐标系

坐标系 本节介绍相机、网格/矩阵/图像和机器人坐标系。 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录坐标系网格像素中心网格/矩阵/图像坐标系相机坐标系机器人坐标系网格像素中心 存储网格 GGG 上的值&#xff0c;使得网格单元将值…

Crack:CAD Exchanger GUI/CAD Exchanger Lab 不是SDK

CAD Exchanger GUI/CAD Exchanger Lab 用于查看、转换和分析 CAD、BIM 和 3D 数据 在 Windows、Mac 和 Linux 上加载和转换模型&#xff0c;而无需处理昂贵的 CAD 系统。 使用 CATIA、SOLIDWORKS、Creo、STEP、JT、IFC 和更多格式。 非常适合您的 3D 数据工作流程 连接不同的软…

多频电磁仪在2018年杭州电磁大会的报告(ICEEG)

本篇是对多频电磁方法,应用的解读。 本汇报讲述了EMI传感器的基本情况,以及用手持多频电磁仪进行实际探测应用的例子。 什么是电磁感应?用发射装置(TX)激发谐波,产生一次场(Primary field),地下导体目标会相应产生涡流电磁场,产生二次场,被接收装置(RX)探测到。 …