Java AWT BorderLayout的使用

目录

背景:

代码例子:

代码详解:

效果展示:

总结: 


背景:

BoderLayout是Java AWT(Abstract Window Toolkit)和Swing图形用户界面(GUI)库中的一个布局管理器。它用于安排组件(如按钮、标签、面板等)在容器(如窗户、面板等)中的位置。BorderLayout容器划分为五个区域:北(NORTH)、南(SOUTH)、东(EAST)、西(WEST)和中心(CENTER),接下将通过一个简单的实例,详细解释如何使用AWT的BorderLayout来布局窗口中的组件。 

代码例子:

import java.awt.*;  
public class TestBorderLayout {  public static void main(String args[]) {  Frame f; // 声明一个Frame对象  f = new Frame("Border LAYOUT"); // 创建一个新的Frame对象,并设置其标题为"Border LAYOUT"  Button bn = new Button("BN"); // 创建一个标题为"BN"的按钮  Button bs = new Button("BS"); // 创建一个标题为"BS"的按钮  Button bw = new Button("BW"); // 创建一个标题为"BW"的按钮  Button be = new Button("BE"); // 创建一个标题为"BE"的按钮  Button bc = new Button("BC"); // 创建一个标题为"BC"的按钮  // 设置Frame的布局管理器为BorderLayout  f.setLayout(new BorderLayout());  // 将按钮添加到Frame中,使用BorderLayout的五个区域  f.add(bn, BorderLayout.NORTH); // 将按钮bn添加到窗口的北部  f.add(bs, BorderLayout.SOUTH); // 将按钮bs添加到窗口的南部  f.add(bw, BorderLayout.WEST);  // 将按钮bw添加到窗口的西部  f.add(be, BorderLayout.EAST);  // 将按钮be添加到窗口的东部  f.add(bc, BorderLayout.CENTER); // 将按钮bc添加到窗口的中心  f.setSize(200, 200); // 设置窗口的大小为200x200像素  f.setVisible(true); // 使得窗口可见  }  
}

代码详解:

1.导入java.awt包,它包含了AWT库的所有类和接口

import java.awt.*;

2.定义TestBorderLayout的公共类,并在其中定义main方法,这是java程序的入口点

public class TestBorderLayout {  public static void main(String args[]) {  // ...  }  
}

 3.创建Frame和按钮

public class TestBorderLayout {  public static void main(String args[]) {  // ...  }  
}

4.设置布局管理器(虽然Frame默认使用BorderLayout,但现实设置它可以使代码更清晰)

f.setLayout(new BorderLayout());

5.添加组件到Frame

f.add(bn, BorderLayout.NORTH); // ... 以及其他按钮的添加

6.设置窗口大小和可见性

f.setSize(200, 200);  
f.setVisible(true);

效果展示:

总结: 

属性/特点描述
区域
北(NORTH)容器的顶部
南(SOUTH)容器的底部
东(EAST)容器的右边
西(WEST)容器的左边
中心(CENTER)占据除了其他四个区域之外的所有空间
组件添加使用 add 方法将组件添加到特定区域
示例frame.add(button, BorderLayout.NORTH);
组件大小
区域无组件该区域不占用空间
区域有组件组件根据其首选大小进行排列,并尽可能填充其所在区域的宽度或高度
中心区域组件将尽可能填充容器的剩余空间
层次关系如果多个组件被添加到同一个区域,则后添加的组件将显示在前面
默认布局在 AWT 的 Frame 和 Swing 的 JFrame 中,BorderLayout 是默认的布局管理器
使用场景适用于需要简单、结构化布局的 GUI 应用程序
示例场景菜单栏在顶部,状态栏在底部,主要内容区域在中间
与其他布局管理器的区别提供了更明确的区域划分和更灵活的空间管理,与 FlowLayout 和 GridLayout 等不同

 从例子中,我们了解了如何使用AWT的BorderLayout的布局窗口中的组件。BorderLayout是一个常见的布局管理器,它将窗口划分为五个区域:北、南、东、西和中心。每个区域可以放置一个组件,如果多个组件被添加到同一个区域,那么它们将堆叠子啊一起。

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

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

相关文章

硬盘空间告急?监控服务器容量,钉钉及时提醒!

在日常的服务器维护中,硬盘容量的监控是非常重要的。如果硬盘容量超过某个阈值,可能会导致服务器无法正常运行,影响业务的正常运作。为了避免这种情况,我们可以编写一个Shell脚本,定期检查硬盘容量,当超过设…

微服务框架中的Eureka和Ribbon的个人理解

微服务框架需要学习的东西很多,基本上我把它分为了五个模块: 第一:微服务技术模块 分为三个常用小模块: 1.微服务治理: 注册发现 远程调用 配置管理 网关路由 2.微服务保护: 流量控制 系统保护 熔断降级 服…

springcloud第4季 分布式事务seata实现AT模式案例

一 seata案例 1.1 背景说明 本案例使用seata的at模式,模拟分布式事务场景:【下订单,减库存,扣余额,改状态】 1.2 初始化脚本 1.2.1 新建seata_order_024 库 1.新建undol_log表 -- for AT mode you must to init…

锐捷AP从其它项目拆下,怎么也加入不了到现在这个网络里来

环境: AP 产品型号:RG-RAP2260G 问题描述: 锐捷AP从其它项目拆下,怎么也加入不了到现在这个网络里来,现网是WIFI5的,想把2260G用来升级,恢复出厂设置后,插上网线,现网找不到这个AP 解决方案: 1.通电重置AP后,连接AP WiFi进入管理页面,要求先快速配置 2.开始配置…

MySQL的隔离级别详解

MySQL的隔离级别详解 MySQL是一个广泛使用的关系数据库管理系统,其事务处理能力是其核心功能之一。事务处理中的隔离级别决定了一个事务在读取或写入数据时如何受到其他并发事务的影响。MySQL提供了四种标准的隔离级别,每种隔离级别在性能和一致性之间做…

算法力扣刷题记录十【19.删除链表的倒数第N个节点】

前言 链表练习,继续 题目:力扣【19.删除链表的倒数第N个节点】 题目阅读 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1…

服务器出现意外情况。(Exception from HRESULT: 0x80010105(RPC E SERVERFAULT))

这种情况一般出现在excel2007版本,下载了什么阅读器之类的 2007改不了这个加载项,需要重装一个其他版本(2010版本可以) 然后如下操作修改为COM加载项

Python湍流隐式模型耗散粘性方程和大涡流模拟

🎯要点 🎯达朗贝尔一维波动通解,二维变速模拟 | 🎯达朗贝尔算子解双曲波形微分方程 | 🎯耗散系统粘性伯格斯方程快速傅里叶变换算法 | 🎯二维线性和非线性对流扩散解和湍流隐式建模 📜偏微分方…

[行业原型] Web端原型案例:康欣医疗后台管理系统

​医疗管理系统是一个业务复杂,功能庞大的系统,以下为HIS医院管理系统的常见模块,供大家参考。 本周为大家带来Web端原型案例:康欣医疗后台管理系统,先上原型: 完整文档加班主任微信号 添加班主任回复 “1…

8个Unity开发高手都在用的秘密技巧!

1. 不要重新发明轮子,使用内置的引擎工具 在使用任何引擎时,比如Unity或Unreal Engine,一些开发者,主要是来自计算机科学领域的开发者,可能会倾向于从头开始开发大型算法或结构,而不去了解引擎中是否已经存…

我给我的学校写了个校园墙小程序

目录 前言 正文 事先声明 项目介绍 关于Github的一些点 ①贡献值的记录 ②Github中的Project是什么 ③Release和Package有什么区别 ④开源许可证之间的区别 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Securit…

vector的自实现(迭代器失效问题)与继承续讲

引子:在生活中,我们使用vector很频繁,我们是不是可以自己来实现一个呢?,其实也不难,我们在学过数据结构,就很easy啦! As we all kowmn,vector基础有以下函数! from my …

git 初基本使用-----------笔记(结合idea)

Git命令 下载git 打开Git官网(git-scm.com),根据自己电脑的操作系统选择相应的Git版本,点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” ,也可以命令终端下cd到指定目录执行初始化命令…

YOLOv1 中的一些计算

YOLOv1 中的一些计算 位置参数计算 在训练过程中,需要分别计算真实框的位置参数 t x t_x tx​、 t y t_y ty​、 w w w、 h h h。 已知真实框的左上角点和右下角点坐标: g t [ x 1 , y 1 , x 2 , y 2 ] gt [x_1, y_1, x_2, y_2] gt[x1​,y1​,x2​…

vue elementui简易侧拉栏的使用

目的&#xff1a; 增加了侧拉栏&#xff0c;目的是可以选择多条数据展示数据 组件&#xff1a; celadon.vue <template><div class"LayoutMain"><el-aside :width"sidebarIsCollapse ? 180px : 0px" class"aside-wrap"><…

【机器学习】深度概率模型(DPM)原理和文本分类实践

1.引言 1.1.DPM模型简介 深度概率模型&#xff08;Deep Probabilistic Models&#xff09; 是结合了深度学习和概率论的一类模型。这类模型通过使用深度学习架构&#xff08;如神经网络&#xff09;来构建复杂的概率分布&#xff0c;从而能够处理不确定性并进行预测。深度概率…

Linux通过expect实现免交互

免交互 Here Document 用于将多行字符串直接传递给命令的方式&#xff0c;不需要人为交互命令界面&#xff0c;实现免交互 当使用Here Document操作文件时&#xff0c;需要借助一个文件结束符 EOF&#xff1a;文件结束符 示例 在脚本文件中写入以下内容 <<&#x…

AFLNet入门教学——测试RTSP协议实现Live555(Ubuntu)

1、简介 本文旨在使用AFLNet对RTSP协议实现Live555进行模糊测试。实验环境为&#xff1a;Ubuntu22.04.4AFLNet安装参考&#xff1a;AFLNet入门教学——安装&#xff08;Ubuntu22.04.4&#xff09;-CSDN博客 2、安装Live555 本次实验采取的是live555在2018年8月28日上传的版本…

nacos漏洞汇总

1 nacos介绍 1.1 nacos是啥 Alibaba Nacos是阿里巴巴推出来的一个新开源项目&#xff0c;是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集&#xff0c;可以快速实现动态服务发现、服…

【Knowledge Graph Context-Enhanced Diversified Recommendation(MSDM2024)】

Knowledge Graph Context-Enhanced Diversified Recommendation 摘要 推荐系统&#xff08;RecSys&#xff09;领域已被广泛研究&#xff0c;以通过利用用户的历史交互来提高准确性。 尽管如此&#xff0c;这种对准确性的持续追求常常导致多样性的减少&#xff0c;最终导致众所…