Swing程序设计(6)边界布局,网格布局

文章目录

  • 前言
  • 一、布局介绍
    • 1.边界布局
    • 2.网格布局
    • 3.网格组布局.
  • 总结

前言

    Swing程序中还有两种方式边界布局,网格布局供程序员使用。这两种布局方式更能体现出软件日常制作的排列布局格式。


一、布局介绍

        1.BorderLayout边界布局

                 语法:new BorderLayout

                 使用场景:c.setLayout( new BorderLayerout )

import java.awt.*;
import javax.swing.*;
//导入相关swing组件public class Layout extends JFrame{
//继承JFrame窗体类public Layout(){//编写窗体布局方法setTitle("边界布局管理器");Container c = getContentPane();//获取容器c.setLayout(new BorderLayout());//设置布局方式为:边界布局 括号中实例化JButton w = new JButton("狼");JButton n = new JButton("狼");JButton e = new JButton("狼");JButton s = new JButton("狼");JButton m = new JButton("羊");//创建了五个组件对于五个位置c.add(w, BorderLayout.WEST);c.add(e, BorderLayout.EAST);c.add(n, BorderLayout.NORTH);c.add(s,BorderLayout.SOUTH);c.add(m,BorderLayout.CENTER);//向容器中添加组件并且设置好对应的布局位置。setBounds(200,200,800,800);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public static void main(String[] args) {new Layout();}
}

        输出结果:

BorderLayout边界布局分为了上北,下南,左西,右东,中间,五个部分组成 

        注意:(1)添加组件时,需要指定区域,否则默认添加到CENTER区

                   (2)同一区域的组件会相互覆盖。

        2.GridLayout网格布局

                语法:new GridLayout(int 列,int 行)

                           new GridLayout(int 列,int 行,int 水平间距,int 垂直间距)

import java.awt.*;
import javax.swing.*;
//导入相关swing组件public class Layout extends JFrame{
//继承JFrame窗体类public Layout(){//编写窗体布局方法setTitle("边界布局管理器");Container c = getContentPane();//获取容器c.setLayout(new GridLayout(4,4,2,2));//设置布局方式为:网格布局,设置网格的几行几列,水平竖直间距for(int i = 0 ;i<16;i++){add(new Button("按钮"+i));       }//添加组件填满网格setBounds(200,200,800,800);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public static void main(String[] args) {new Layout();}
}

         输出结果:

3.GridBagLayout网格组布局 

         使用方法:

                GridBagLayout gridBag = new GridBagLayout();

                容器对象.setLayout(gridBag);

                GridBagConstraints 约束对象 = new java.awt.GridBagConstraints();//导入awt包

                容器对象.add(组件对象,约束对象);

        GridBagConstraints常用属性:

常用属性介绍
gridx , gridy组件所在的位置
gridwidth , gridheight组件所占的行数和列数
anchor组件所在的方位
fill组件的填充方式
insets组件与单元格边缘的最小距离
ipadx,ipady组件的首先大小
weightx,weighty一个单元格的最大宽高

        示例: 

import java.awt.*;
import javax.swing.*;
//导入相关swing组件public class Layout extends JFrame{
//继承JFrame窗体类JFrame f = new JFrame();//主窗体Container c;//主容器void  createFrame(){//该方法用于创建窗体c = f.getContentPane();//方法中容器对象获得了f窗体的容器c.setLayout(new GridBagLayout());//设置网格组布局f.setSize(800,600);f.setLocationRelativeTo(null);f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setVisible(true);}void init(){//设置网格组组件按钮1GridBagConstraints g1 = new GridBagConstraints();g1.gridx=1;g1.gridy=1;c.add(new JButton("按钮1"),g1);//设置网格组组件按钮2GridBagConstraints g2 = new GridBagConstraints();g2.gridx=2;g2.gridy=2;c.add(new JButton("按钮2"),g2);//设置网格组组件按钮3GridBagConstraints g3 = new GridBagConstraints();g1.gridx=3;g1.gridy=3;c.add(new JButton("按钮3"),g3);}public static void main(String[] args) {Layout a = new Layout();a.createFrame();a.init();a.f.setVisible(true);}
}

输出结果: 

网格组布局可以对于相关的组件可以起到约束作用 


总结

        以上就是的边界布局,网格布局,网格组布局三种swing布局方式的介绍,欢迎在评论区中留言,对于不足的地方以及困惑的地方。

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

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

相关文章

laravel8安装多应用多模块(笔记三)

先安装laravel8 Laravel 安装&#xff08;笔记一&#xff09;-CSDN博客 一、进入项目根目录安装 laravel-modules composer require nwidart/laravel-modules 二、 大于laravel5需配置provider&#xff0c;自动生成配置文件 php artisan vendor:publish --provider"Nwid…

windows cmd执行远程长脚本

背景 有时候我们想在未进行一些环境设置&#xff0c;或者工具使用者电脑中执行一段初始化脚本&#xff0c;为了简化使用者的理解成本&#xff0c;通常给使用者一段代码执行初始化电脑中的设置&#xff0c;尤其是这段初始化脚本比较长的时候。 脚本制作者 比如将需要执行的命…

H5ke12--2--学生选课表格的编辑

方法1不可以修改的用label,如何按了哪一行 就会在下面有个文本显示可编辑的一行 方法2每一行后面都有一个编辑, 3对每一个修改,每一个td失去焦点都会有,直接到达我们服务器 注意 如果用span的每一个html元素都可以自己定义属性 Data-属性名,data-Address links也要给为span 1…

递归算法学习——二叉树的伪回文路径

1&#xff0c;题目 给你一棵二叉树&#xff0c;每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的&#xff0c;当它满足&#xff1a;路径经过的所有节点值的排列中&#xff0c;存在一个回文序列。 请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。 示例…

软件设计中如何画各类图之二深入解析数据流图(DFD):系统设计与分析的关键视觉工具

目录 1 前言2 数据流图&#xff08;DFD&#xff09;的重要性3 数据流图的符号说明4 清晰的数据流图步骤4.1 确定系统边界4.2 识别数据流4.3 定义处理过程4.4 确认数据存储4.5 建立数据流动的连线4.6 细化和优化 5 数据流图的用途6 使用场景7 实际应用场景举例8 结语 1 前言 当…

使用 Python 和 NLTK 进行文本摘要

一、说明 文本摘要是一种自然语言处理技术&#xff0c;允许用户将大量文本总结为小块&#xff0c;而不会丢失任何重要信息。本文介绍NLP中使用Gensim和Sumy实现文本摘要的步骤。 二、为什么要总结文本&#xff1f; 互联网包含大量信息&#xff0c;而且每秒都在增加。文本摘要可…

鼠标点击位置获取几何体对象_vtkAreaPicker_vtkInteractorStyleRubberBandPick

开发环境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码 demo解决问题&#xff1a;框选或者点选某一区域&#xff0c;并获取区域prop3D对象&#xff08;红线内为有效区域&#xff0c;polydata组成的3d几何对象&a…

力扣刷题篇之排序算法

系列文章目录 前言 本系列是个人力扣刷题汇总&#xff0c;本文是排序算法。刷题顺序按照[力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 - 力扣&#xff08;LeetCode&#xff09; 这个之前写的左神的课程笔记里也有&#xff1a; 左程云算法与数据结构代码汇总之排序&am…

【前端】数据行点击选择

前言 【前篇文章】说了,我们公司的核心价值就是让人越来越懒,能怎么便捷就怎么便捷,主打一个简单实用又快捷,为了实现这个目标,我看成这个列表陷入了深思在想,要不要子表的数据加载在点击这个行时,就可以展示数据,这样就不用每次都要点那个小圆圈啦。 查资料 这显然…

2023.11.25-istio安全

目录 文章目录 目录本节实战1、安全概述2、证书签发流程1.签发证书2.身份认证 3、认证1.对等认证a.默认的宽容模式b.全局严格 mTLS 模式c.命名空间级别策略d.为每个工作负载启用双向 TLS 2.请求认证a.JWK 与 JWKS 概述b.配置 JWT 终端用户认证c.设置强制认证规则 关于我最后 本…

RevCol实战:使用RevCol实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

「Verilog学习笔记」数据串转并电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 关于什么是Valid/Ready握手机制&#xff1a; 深入 AXI4 总线&#xff08;一&#xff09;握手机制 - 知乎 时序图含有的信息较多&#xff0c;观察时序图需要注意&#xff1a…

Redis常用操作及应用(一)

一、五种数据结构 二、String结构 1、字符串常用操作 SET key value //存入字符串键值对 MSET key value [key value ...] //批量存储字符串键值对 SETNX key value //存入一个不存在的字符串键值对 GET key //获取一个字符串键值 MGET key [ke…

php获取当前域名方法

使用$_SERVER[HTTP_HOST]变量只获取到域名&#xff1a; $domain $_SERVER[HTTP_HOST]; echo $domain; 获取包含协议和域名的完整URL $protocol isset($_SERVER[HTTPS]) && $_SERVER[HTTPS] on ? https:// : http://; $domain $_SERVER[HTTP_HOST]; $current_url…

C++ 之win32多线程应用总结

InterlockedIncrement 函数的作用&#xff1a; 在多线程同时对一个变量访问时&#xff0c;保证一个线程访问变量时其他线程不能访问 事件是很常用的多线程同步互斥机制 HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, // SECURITY_ATTRIBUTES结构指针&…

支持Arm CCA的TF-A威胁模型

目录 一、简介 二、评估目标 2.1 假定 2.2 数据流图 三、威胁分析 3.1 威胁评估 3.1.1 针对所有固件镜像的一般威胁 3.1.2 引导固件可以缓解的威胁 3.1.3 运行时EL3固件可缓解的威胁 一、简介 本文针对支持Arm Realm Management Extension (RME)、实现Arm Confidentia…

Spark SQL 时间格式处理

初始化Spark Sql package pbcp_2023.clear_dataimport org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions.{current_date, current_timestamp}object twe_2 {def main(args: Array[String]): Unit {val con new …

认识Linux操作系统

什么是操作系统&#xff1f; 操作系统是一款软硬件资源管理的软件Linux是一款具体的操作系统的品类&#xff08;Linux内核是用C语言写的&#xff09;centos7是一款具体的Linux操作系统 为什么要有操作系统&#xff1f; Linux操作系统 Linux是一种自由和开放源代码的类UNIX操…

Linux时间命令—— 显示时间,日历等

目录 1.date显示时间 1.1 常用的标记列表&#xff1a; 1.2 设定时间&#xff1a; 2.cal显示日历 3.时间戳 1.date显示时间 date 用法&#xff1a;date [OPTION] ... [FORMAT] 1.1 常用的标记列表&#xff1a; %H : 小时 (00..23) %M : 分钟 (00..59) %S : 秒 (00..61…

基于Python的面向对象分类实例Ⅱ

接上一部分继续介绍~ 一、地类矢量转栅格 这一步是为了能让地类值和影像的对象落在同一区域&#xff0c;从而将影像中的分割对象同化为实际地物类别。 train_fn r".\train_data1.shp" train_ds ogr.Open(train_fn) lyr train_ds.GetLayer() driver gdal.GetDrive…