当前位置: 首页 > news >正文

Java中三种常用布局方式

引言

在Java Swing和JavaFX中,布局管理器(Layout Managers)用于控制组件(如按钮、文本框等)在容器(如窗口、面板等)内的位置和大小。下面介绍Java Swing中常用的三种布局方式:

1. FlowLayout(流式布局)

  • 特点FlowLayout 是最简单的布局管理器之一,它按照从左到右、从上到下的顺序排列组件。当一行放不下更多的组件时,会自动换行。
  • 适用场景:适用于组件数量不多,且不需要复杂对齐的情况。
  • 示例代码
    import javax.swing.*;
    import java.awt.*;public class FlowLayoutExample {public static void main(String[] args) {JFrame frame = new JFrame("FlowLayout Example");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300, 200);// 设置布局管理器为FlowLayoutframe.setLayout(new FlowLayout());// 添加组件frame.add(new JButton("Button 1"));frame.add(new JButton("Button 2"));frame.add(new JButton("Button 3"));// 显示窗口frame.setVisible(true);}
    }

2. BorderLayout(边界布局)

  • 特点BorderLayout 将容器划分为五个区域:北(North)、南(South)、东(East)、西(West)和中心(Center)。每个区域最多只能放置一个组件。
  • 适用场景:适用于需要在窗口的固定位置放置组件的情况,如标题栏、状态栏等。
  • 示例代码
    import javax.swing.*;
    import java.awt.*;public class BorderLayoutExample {public static void main(String[] args) {JFrame frame = new JFrame("BorderLayout Example");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300, 200);// 设置布局管理器为BorderLayoutframe.setLayout(new BorderLayout());// 添加组件frame.add(new JButton("North"), BorderLayout.NORTH);frame.add(new JButton("South"), BorderLayout.SOUTH);frame.add(new JButton("East"), BorderLayout.EAST);frame.add(new JButton("West"), BorderLayout.WEST);frame.add(new JButton("Center"), BorderLayout.CENTER);// 显示窗口frame.setVisible(true);}
    }

3. GridLayout(网格布局)

  • 特点GridLayout 将容器划分为一个矩形网格,每个组件占据一个单元格,所有单元格的大小相同。
  • 适用场景:适用于需要将组件均匀分布在一个网格中的情况,如计算器界面。
  • 示例代码
    import javax.swing.*;
    import java.awt.*;public class GridLayoutExample {public static void main(String[] args) {JFrame frame = new JFrame("GridLayout Example");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300, 200);// 设置布局管理器为GridLayout,3行3列frame.setLayout(new GridLayout(3, 3));// 添加组件for (int i = 1; i <= 9; i++) {frame.add(new JButton("Button " + i));}// 显示窗口frame.setVisible(true);}
    }

总结

  • FlowLayout:简单易用,适合组件较少且不需要复杂对齐的情况。
  • BorderLayout:适用于需要在固定位置放置组件的情况。
  • GridLayout:适用于需要将组件均匀分布在网格中的情况。

相关文章:

Java中三种常用布局方式

引言 在Java Swing和JavaFX中&#xff0c;布局管理器&#xff08;Layout Managers&#xff09;用于控制组件&#xff08;如按钮、文本框等&#xff09;在容器&#xff08;如窗口、面板等&#xff09;内的位置和大小。下面介绍Java Swing中常用的三种布局方式&#xff1a; 1. Fl…...

06_数据类型

数据类型 数据类型分类 JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值和第八种 BigInt类型,当前课程暂不涉及) 据类型分类 原始类型(基础类型) var age = 20, var name = 尚学堂"; var le…...

及时+准确|主动元数据平台在监管报送场景中的应用实践

面对海量的数据报送需求和日益严格的监管要求&#xff0c;如何实现监管报送的全链路自动化数据质量保障&#xff0c;是金融机构亟待解决的重要课题。本文旨在介绍一种全新的监管报送场景方案&#xff0c;帮助金融机构通过“一键溯源与口径自动盘点、指标同源自动化分析、全链路…...

[python脚本处理文件入门]-18.使用Python进行PDF文件的合并与拆分

哈喽,大家好,我是木头左! Python PDF处理库概览 1. PyPDF2 PyPDF2是一个纯Python编写的库,用于PDF文件的读写和操作。它提供了丰富的功能,包括PDF文件的合并、拆分、加密、解密等。PyPDF2的安装非常简单,只需通过pip即可安装: pip install PyPDF2安装完成后,你就可以…...

4、常量和进制转换

1、常量 1.1、常量 常量是在程序运行中值不能内改变&#xff08;常数&#xff09;。 整型:12 55 实型:21.5 字符型常量: ‘A’ 1.2、常量不同进制表示 常量数据在计算机中除了用 十进制 表示&#xff0c;还可以用 二进制、八进制、十六进制表示。 十进制数据&…...

C++:探索哈希表秘密之哈希桶实现哈希

文章目录 前言一、链地址法概念二、哈希表扩容三、哈希桶插入逻辑四、析构函数五、删除逻辑六、查找七、链地址法代码实现总结 前言 前面我们用开放定址法代码实现了哈希表&#xff1a; C&#xff1a;揭秘哈希&#xff1a;提升查找效率的终极技巧_1 对于开放定址法来说&#…...

java函数式编程和Lambda表达式

https://www.bilibili.com/video/BV1fz421C7tj?spm_id_from333.788.videopod.episodes&vd_source12d5954938d20d50645e227a6a728c76 如果一个接口中只有一个方法&#xff0c;那么就可以函数对象化&#xff1a; interface Add {int add(int a, int b);}Add add (a, b) -&…...

【线程】Java多线程代码案例(2)

【线程】Java多线程代码案例&#xff08;2&#xff09; 一、定时器的实现1.1Java标准库定时器1.2 定时器的实现 二、线程池的实现2.1 线程池2.2 Java标准库中的线程池2.3 线程池的实现 一、定时器的实现 1.1Java标准库定时器 import java.util.Timer; import java.util.Timer…...

IOU Loss详解

IoU&#xff08;Intersection over Union是目标检测中常用的指标&#xff0c;用于评估预测框和真实框的重叠程度。基于 IoU 的损失函数&#xff08;IoU Loss&#xff09;是通过优化 IoU 值来提升模型预测框的精度。 IoU 的计算公式 给定预测框 ( B_p ) 和真实框 ( B_g )&#…...

nfs服务器

1、简介 NFS &#xff08;Network File System&#xff0c;网络文件系统&#xff09;是FreeBSD支持的文件系统中的一种&#xff0c;它允许网络中的计 算机&#xff08;不同的计算机、不同的操作系统&#xff09;之间通过TCP/IP网络共享资源&#xff0c;主要在unix系列操作系统上…...

Diving into the STM32 HAL----- IWDG and WWDG Timers笔记

墨菲定律指出&#xff0c;任何可能出错的事情都会出错。尤其是对于嵌入式系统来说&#xff0c;情况尤其如此。除了硬件故障也会对软件产生影响外&#xff0c;即使是最仔细的设计也可能会出现一些意外情况&#xff0c;导致我们设备的异常行为。这可能会产生重大成本&#xff0c;…...

使用statefulset管理pod

deployment主要管理无状态的pod&#xff0c;就算需要磁盘也是期望做动态扩容的。而对于那种有状态需要存储数据的&#xff0c;如log、数据库、消息中间件需要持久化数据的&#xff0c;则建议使用StatefulSet&#xff0c;我们的pod现在扩充了pv和pvc&#xff0c;那就使用Statefu…...

6个AI生成PPT的网站,pptai一键生成

演讲和展示PPT是当今办公和学习中的重要组成部分&#xff0c;无论是工作汇报、发表研究成果&#xff0c;还是课件培训&#xff0c;一款精心制作的PPT能够有效吸引观众的参与&#xff0c;并将你的信息深入人心。借助不断进步的人工智能技术&#xff0c;众多免费的AI PPT生成器可…...

【力扣】541.反转字符串2

问题描述 思路解析 每当字符达到2*k的时候&#xff0c;判断&#xff0c;同时若剩余字符>k,只对前k个进行判断&#xff08;这是重点&#xff09;因为字符串是不可变变量&#xff0c;所以将其转化为字符串数组&#xff0c;最后才将结果重新转变为字符串 字符串->字符数组 …...

如何优雅的用PyQt访问http(仅供参考)

使用pydantic或dataclaass创建一个数据存储对象 第一种 # coding: utf-8 from typing import Anyimport requests from pydantic import Field, BaseModelclass ResponseModel(BaseModel):status: bool Field(True, description"响应状态")message: str Field(请求…...

小程序租赁系统开发的优势与应用解析

内容概要 随着科技的迅猛发展&#xff0c;小程序租赁系统应运而生&#xff0c;成为许多企业优化业务的重要工具。首先&#xff0c;它提升了用户体验。想象一下&#xff0c;用户只需轻轻一点&#xff0c;就能够浏览和租赁心仪的商品&#xff0c;这种便捷的过程使繁琐的操作大大…...

Group Convolution(分组卷积)

分组卷积的优点&#xff1a; 减少参数数量&#xff1a; 在分组卷积中&#xff0c;每个分组只与一部分输入通道进行卷积运算&#xff0c;这意味着模型的参数数量会减少。例如&#xff0c;如果一个卷积层有8个输入通道和8个输出通道&#xff0c;且不使用分组&#xff0c;那么将有…...

uniapp在H5使用vue-router路由返回上一页不会触发销毁函数解决方法

问题&#xff1a;uniapp在H5使用vue-router路由&#xff0c;如果在H5平台上进行页面刷新操作&#xff0c;再返回上一页&#xff0c;可能会遇到beforeDestroy、destroyed、onUnload生命周期钩子不被触发的问题。这是因为在H5中&#xff0c;页面的刷新实际上是整个应用的重新加载…...

YOLOv8配置文件应该如何命名?

文末有重点 1.配置文件解析代码yolov8/ultralytics/nn/tasks.py 如下&#xff1a; def yaml_model_load(path):"""Load a YOLOv8 model from a YAML file."""import repath Path(path)if path.stem in (fyolov{d}{x}6 for x in nsmlx for d i…...

扫雷-完整源码(C语言实现)

云边有个稻草人-CSDN博客 在学完C语言函数之后&#xff0c;我们就有能力去实现简易版扫雷游戏了&#xff08;成就感满满&#xff09;&#xff0c;下面是扫雷游戏的源码&#xff0c;快试一试效果如何吧&#xff01; 在test.c里面进行扫雷游戏的测试&#xff0c;game.h和game.c…...

数据库(MySQL黑马)

基础篇 MySQL概述 数据库概述 数据库相关概念 主流的关系型数据库管理系统 MySQL数据库的安装与启动 下载&#xff1a;MySQL :: MySQL Community Downloads 安装步骤 MySQL―8.0.40超详细保姆级安装教程_mysql8.0.40安装教程-CSDN博客文章浏览阅读1k次。_mysql8.0.40安装教…...

UE5 Line Trace By Channel(通道线条追踪)节点

在 Unreal Engine 5 (UE5) 中&#xff0c;Line Trace By Channel 是一个常用于进行物理射线检测&#xff08;raycasting&#xff09;的节点。它会沿着一条从起点到终点的直线发射一条射线&#xff0c;并检测射线与世界中任何物体的碰撞。这个节点广泛应用于枪械射击、检测物体、…...

How to use the ‘git log‘ command to get change log for each file?

1. Using git log command #!/bin/bash# 目标文件名 output_file"git_log.csv"# 打印 CSV 文件的标题行 echo "CommitID,Author,Author Email,Date,Added-Lines Removed-Lines File" > $output_file echo "CommitID,Author,Author Email,Date,Add…...

node.js中实现router模块化管理

index.js const express require(express); const app express()// 导入路由模块 const router require(./router/index)// 注册路由模块 app.use(router)app.listen(3000, ()>{console.log(http://127.0.0.1:3000) })router/index.js const express require(express…...

突破性算法:让无人机集群在狭窄空间内穿针引线

导读 在建筑救援、森林搜索等任务中&#xff0c;无人机集群经常会遇到狭窄空间限制和动态障碍物变化等挑战。这些挑战会导致集群内部冲突&#xff0c;或在执行任务时因避让动态障碍物而导致系统混乱。实际应用场景和任务的严格特征往往使得全局搜索难以优化&#xff0c;而局部避…...

人工智能如何改变你的生活?

在我们所处的这个快节奏的世界里&#xff0c;科技融入日常生活已然成为司空见惯的事&#xff0c;并且切实成为了我们生活的一部分。在这场科技变革中&#xff0c;最具变革性的角色之一便是人工智能&#xff08;AI&#xff09;。从我们清晨醒来直至夜晚入睡&#xff0c;人工智能…...

C语言main()函数

C语言main()函数 argc&#xff08;argument count&#xff09; 在C或C程序中&#xff0c;argc&#xff08;argument count的缩写&#xff09;是一个由程序运行时环境自动提供的整数&#xff0c;用于指示传递给main函数的命令行参数的数量。因此&#xff0c;不需要&#xff08…...

【LC】162. 寻找峰值

题目描述&#xff1a; 峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须…...

Zero to JupyterHub with Kubernetes上篇 - Kubernetes 离线二进制部署

前言&#xff1a; 纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 k8s二进…...

HTML5+JavaScript实现消消乐游戏

HTML5JavaScript实现消消乐游戏 点击两个相邻的方块来交换它们位置。 如果交换后形成三个或更多相同图案的方块连成一线&#xff0c;这些方块会被消除。 消除后&#xff0c;上方的方块会下落填补空缺&#xff0c;顶部会生成新的方块。 每消除一个方块得10分。例如&#xff0…...

深度学习:在PyTorch中进行模型验证完整流程

深度学习&#xff1a;在PyTorch中进行模型验证完整流程&#xff08;以图像为例&#xff09; 详细说明在PyTorch中进行模型验证的全过程。 模型验证的详细步骤和流程 1. 设置计算设备 选择合适的计算设备是性能优化的第一步。基于系统的资源&#xff08;GPU的可用性&#xf…...

洛谷 P1747 好奇怪的游戏 C语言 bfs

题目&#xff1a; https://www.luogu.com.cn/problem/P1747#submit 题目描述 爱与愁大神坐在公交车上无聊&#xff0c;于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘&#xff1a;***&#xff08;游戏名被打上了马赛克&#xff09;。这个游戏类似象棋&#xff0c;但…...

豆包MarsCode

01 AI代码陪练 来到豆包MarsCode官网&#xff1a;http://sqllb.com/6FRiH76 &#xff0c;点击左上方的代码练习&#xff0c;就能看到一个AI代码陪练的练习场。 在左边栏&#xff0c;可以看到各种各样的算法题目&#xff0c;在右侧是MarsCode AI&#xff0c;中间是算法题目和…...

Docker网络模式:桥接(Bridge)模式与主机模式(Host)实操对比(一)

文章目录 前言一、桥接模式(Bridge Mode)前言 随着容器化技术的发展,Docker 已成为开发和部署应用的首选工具之一。Docker 不仅简化了应用的打包过程,还提供了多种网络模式来满足不同应用场景下的需求。本文将重点探讨两种常用的 Docker 网络模式——桥接模式(Bridge Mod…...

3. STM32_串口

数据通信的基础概念 什么是串行/并行通信&#xff1a; 串行通信就是数据逐位按顺序依次传输 并行通信就是数据各位通过多条线同时传输。 什么是单工/半双工/全双工通信&#xff1a; 单工通信&#xff1a;数据只能沿一个方向传输 半双工通信&#xff1a;数据可以沿两个方向…...

【Git】Git 命令参考手册

目录 Git 命令参考手册1. 创建仓库1.1 创建一个新的本地仓库1.2 克隆一个仓库1.3 克隆仓库到指定目录 2. 提交更改2.1 显示工作目录中已修改的文件&#xff0c;准备提交2.2 将文件添加到暂存区&#xff0c;准备提交2.3 将所有已修改的文件添加到暂存区&#xff0c;准备提交2.4 …...

EBS 中 Oracle Payables (AP) 模块的相关集成

Oracle E-Business Suite (EBS) 中的 Oracle Payables (AP) 模块是一个全面的应付账款管理系统&#xff0c;它不仅提供了丰富的功能来管理与供应商的财务交易&#xff0c;还通过与其他模块的紧密集成&#xff0c;实现了企业内部各个业务流程的无缝衔接。以下是 Oracle Payables…...

【LC】896. 单调数列

题目描述&#xff1a; 如果数组是单调递增或单调递减的&#xff0c;那么它是 单调 的。如果对于所有 i < j&#xff0c;nums[i] < nums[j]&#xff0c;那么数组 nums 是单调递增的。 如果对于所有 i < j&#xff0c;nums[i]> nums[j]&#xff0c;那么数组 nums 是…...

大语言模型LLM的微调代码详解

代码的摘要说明 一、整体功能概述 这段 Python 代码主要实现了基于 Hugging Face Transformers 库对预训练语言模型&#xff08;具体为 TAIDE-LX-7B-Chat 模型&#xff09;进行微调&#xff08;Fine-tuning&#xff09;的功能&#xff0c;使其能更好地应用于生成唐诗相关内容的…...

鸿蒙主流路由详解

鸿蒙主流路由详解 Navigation Navigation更适合于一次开发,多端部署,也是官方主流推荐的一种路由控制方式,但是,使用起来入侵耦合度高,所以,一般会使用HMRouter,这也是官方主流推荐的路由 Navigation官网地址 个人源码地址 路由跳转 第一步-定义路由栈 Provide(PageInfo) pag…...

GelSight和Meta AI合作推出多模态指尖形全向视触觉传感器Digit360

近日&#xff0c;触觉智能技术先锋 GelSight 与 Meta AI相关团队今宣布推出 Digit 360&#xff0c;这是一款呈人工指尖形状的触觉传感器&#xff0c;它能够以高精度将触摸数字化&#xff0c;从而提供较为丰富且详细的触觉数据。Digit 360将会拓展触觉传感研究领域&#xff0c;标…...

XX科技面试笔试题

笔试题 一、选择题 (每题5分,共20分) 1、构成存储器的最小单位是 ( ) A、bit B、Byte C、MB 2、下列不属于WEB服务的是 ( ) A、Apache B、Nginx C、IIS D、LVS 3、web服务器默认端口为 ( ) A、80 B、800 C、22 D、43 4、下列安装系统方法中,适合大量装机需求的是 ( ) A、U盘…...

AVL、B树和B+树

AVL树定义 AVL树&#xff08;Adelson-Velsky 和 Landis 树&#xff09;是一种自平衡的二叉搜索树&#xff08;Binary Search Tree, BST&#xff09;&#xff0c;由苏联数学家Georgy Adelson-Velsky和Evgenii Landis在1962年提出。AVL树通过在每个节点上维护一个平衡因子&#…...

[SWPUCTF 2021 新生赛]include

参考博客: 文件包含 [SWPUCTF 2021 新生赛]include-CSDN博客 NSSCTF | [SWPUCTF 2021 新生赛]include-CSDN博客 考点:php伪协议和文件包含 PHP伪协议详解-CSDN博客 php://filter php://filter可以获取指定文件源码。当它与包含函数结合时&#xff0c;php://filter流会被当…...

ES----安装 elasticsearch入门,elasticsearch安装,centos安装es,centos安装elasticsearch

ES 如需要对应资源&#xff0c;请评论留言&#xff0c;或再最后视频中关注获取 1. 安装 1.1 安装es 创建网络&#xff08;centos系统&#xff0c;docker环境&#xff09; docker network create es-netdocker安装es —如果下载失败&#xff0c;请看我的docker配置镜像的文章…...

探索文件系统,Python os库是你的瑞士军刀

文章目录 探索文件系统&#xff0c;Python os库是你的瑞士军刀第一部分&#xff1a;背景介绍第二部分&#xff1a;os库是什么&#xff1f;第三部分&#xff1a;如何安装os库&#xff1f;第四部分&#xff1a;简单库函数使用方法1. 获取当前工作目录2. 改变当前工作目录3. 列出目…...

android studio引用so库

在工程中编译好的so库文件将在原始编译工程对应目录下&#xff1a;build/intermediates/cxx/Debug/xxxxxx/obj/ 其目录结构如上所示&#xff0c;包含生成的四个版本&#xff0c;每个文件夹下均包含c/c源码编译成的Android版本的libnavi.so库和提供应用接口的libnavi-lib.so库。…...

Ubuntu 服务器部署 Tomcat 并配置 SSL/TLS 证书

本文目录 准备登陆云服务器安装 Java下载 tomcat 包配置防火墙浏览器访问 Tomcat 默认页面以服务的形式运行 Tomcat创建 Tomcat 用户和组创建 systemd 服务文件启动 tomcat 服务 Tomcat webapps 文件目录部署一个静态网站tomcat 的配置文件 将域名解析到服务器Tomcat 配置 SSL/…...

不间断电源 (UPS) 对现代技术可靠性的影响

在这个技术型世界里&#xff0c;无论是在个人还是商业环境中&#xff0c;电力供应商提供的稳定供电都变得越来越重要。 不间断电源 (UPS) 系统是一种不可或缺的解决方案&#xff0c;可保证终端设备不受干扰地运行&#xff0c;在出现电源问题或故障时让用户继续工作。 这篇文章…...

Android 基础类(01)- Thread类 - readyToRun和threadLoop

一、前言&#xff1a; 在阅读AOSP代码过程中&#xff0c;我们经常会看到Thread子类重写两个方法&#xff1a;readyToRun和threadLoop&#xff0c;不清楚的同学&#xff0c;可能在这儿连调用逻辑都搞不清楚了&#xff0c;因为找不到谁调用了它。我这儿先不去深究Thread内部逻辑…...