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(){
        //设置网格组组件按钮1
        GridBagConstraints g1 = new GridBagConstraints();
        g1.gridx=1;
        g1.gridy=1;
        c.add(new JButton("按钮1"),g1);

        //设置网格组组件按钮2
        GridBagConstraints g2 = new GridBagConstraints();
        g2.gridx=2;
        g2.gridy=2;
        c.add(new JButton("按钮2"),g2);

        //设置网格组组件按钮3
        GridBagConstraints 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布局方式的介绍,欢迎在评论区中留言,对于不足的地方以及困惑的地方。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023亚马逊云科技re:Invent引领科技新潮流:云计算与生成式AI共塑未来

2023亚马逊云科技re:Invent引领科技新潮流&#xff1a;云计算与生成式AI共塑未来 历年来&#xff0c;亚马逊云科技re:Invent&#xff0c;不仅是全球云计算从业者的年度狂欢&#xff0c;更是全球云计算领域每年创新发布的关键节点。 2023年亚马逊云科技re:Invent大会在美国拉斯…

实验室信息管理系统源码,LIS系统源码,lis源码

医学检验(LIS)管理系统源码&#xff0c;云LIS系统全套商业源码 随着全自动生化分析仪、全自动免疫分析仪和全自动血球计数器等仪器的使用&#xff0c;检验科的大多数项目实现了全自动化分析。全自动化分析引入后&#xff0c;组合化验增多&#xff0c;更好的满足了临床需要&…

某软件商店app抓包分析与sign加密算法实现

文章目录 1. 写在前面2. 抓包配置3. 抓包分析4. 接口测试5. sign加密算法6. 数据效果展示 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】…

2022年MathorCup大数据竞赛B题北京移动用户体验影响因素研究求解全过程文档及程序

2022年MathorCup高校数学建模挑战赛—大数据竞赛 B题 北京移动用户体验影响因素研究 原题再现&#xff1a; 移动通信技术飞速发展&#xff0c;给人们带来了极大便利&#xff0c;人们也越来越离不开移动通信技术带来的各种便捷。随着网络不断的建设&#xff0c;网络覆盖越来越…

nodejs+vue+python+PHP+微信小程序-留学信息查询系统的设计与实现-安卓-计算机毕业设计

1、用户模块&#xff1a; 1&#xff09;登录&#xff1a;用户注册登录账号。 2&#xff09;留学查询模块&#xff1a;查询学校的入学申请条件、申请日期、政策变动等。 3&#xff09;院校排名&#xff1a;查询国外各院校的实力排名。 4&#xff09;测试功能&#xff1a;通过入学…

使用STM32+SPI Flash模拟U盘

试验目的&#xff1a;使用STM32F103C8T6 SPI Flash&#xff08;WSQ16&#xff09;实现模拟U盘的功能 SPI Flash读写说明&#xff1a; Step1 设置SPI1 用于读取SPI Flash&#xff1b; Step2&#xff1a;设置SPI Flash 的使能信号 Step3&#xff1a;使能USB通信 Step4&#xf…

Re54:读论文 How Context Affects Language Models‘ Factual Predictions

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;How Context Affects Language Models’ Factual Predictions ArXiv网址&#xff1a;https://arxiv.org/abs/2005.04611 2020年AKBC论文&#xff0c;作者来自脸书和UCL。 本文主要关注…

城市数字孪生优秀案例集 - 城市治理类 - 深圳市城市交通数字孪生建设

一、背景意义 “十四五”规划、《数字交通发展规划纲要》、《广东省数字经济促进条例》等提出“构建城市数据资源 体系&#xff0c;推进城市数据大脑建设&#xff0c;探索建设数字孪生城市”。 当前&#xff0c;我国 9 亿城市化人口每天出行约 16 亿人 次&#xff0c;主要大城…

VMware安装windows操作系统

一、下载镜像包 地址&#xff1a;镜像包地址。 找到需要的版本下载镜像包。 二、安装 打开VMware新建虚拟机&#xff0c;选择用镜像文件。将下载的镜像包加载进去即可。

发送一个网络数据包的过程解析

在 ip_queue_xmit 中&#xff0c;也即 IP 层的发送函数里面&#xff0c;有三部分逻辑。第一部分&#xff0c;选取路由&#xff0c;也即我要发送这个包应该从哪个网卡出去。 这件事情主要由 ip_route_output_ports 函数完成。接下来的调用链为&#xff1a;ip_route_output_port…

【matlab版本的ggplot2】

gramm (complete data visualization toolbox, ggplot2/R-like) 来源&#xff1a;Morel, Pierre. “Gramm: Grammar of Graphics Plotting in Matlab.” The Journal of Open Source Software, vol. 3, no. 23, The Open Journal, Mar. 2018, p. 568, doi:10.21105/joss.00568…

MySQL-03-索引

索引是提高MySQL查询性能的一个重要途径&#xff0c;但过多的索引可能会导致过高的磁盘使用率以及过高的内存占用&#xff0c;从而影响应用程序的整体性能。应当尽量避免事后才想起添加索引&#xff0c;因为事后可能需要监控大量的SQL才能定位到问题所在&#xff0c;而且添加索…

【深度学习】因果推断与机器学习

2023年初是人工智能爆发的里程碑式的重要阶段&#xff0c;以OpenAI研发的GPT为代表的大模型大行其道&#xff0c;NLP领域的ChatGPT模型火爆一时&#xff0c;引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升&#xff0c;它能够同时接受图像和文本的输入…

论文笔记——FasterNet

为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。 为了实现更快的网络,作者重新回顾了FLOPs的运算符,并证明了如此低的FLOPS主要是由…

电源控制系统架构(PCSA)之电源状态层级

目录 5.2 电源状态层级 5.2.1 Core电源状态 5.2.2 Cluster的电源状态 5.2.3 设备电源状态 5.2.4 SOC电源状态 5.2 电源状态层级 电源状态可以组织为电源状态表的层次结构。每个电源状态表描述在其层次结构级别上可用的电源状态。 从系统级电源控制的角度来看&#xff0c…

Oracle研学-介绍及安装

一 ORACLE数据库特点: 支持多用户&#xff0c;大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性(跨平台&#xff0c;linux转Windows) 二 ORACLE体系结构 数据库&#xff1a;oracle是一个全局数据库&#xff0c;一个数据库可以有多个实例&#xff0c;每个…

Azure Machine Learning - Azure可视化图像分类操作实战

目录 一、数据准备二、创建自定义视觉资源三、创建新项目四、选择训练图像五、上传和标记图像六、训练分类器七、评估分类器概率阈值 八、管理训练迭代 在本文中&#xff0c;你将了解如何使用Azure可视化页面创建图像分类模型。 生成模型后&#xff0c;可以使用新图像测试该模型…

VR Interaction Framework2.0使用

1 按键 &#xff0c;比如按压下手柄的B键 if (InputBridge.Instance.BButtonDown){print("kkkkkkbbbbb456");} 2抓取某个物体&#xff0c;那么就在要抓取的那个物体上加一些组件&#xff0c;特别是Grabble Unity Events

nginx知识梳理及配置详解

软件开发全文档获取&#xff1a;点我获取 nginx安装 #nginx安装 yum -y install gcc pcre-devel openssl-devel #依赖包 useradd -s /sbin/nologin nginx ./configure --prefix/usr/local/nginx #指定安装目录 --usernginx #指定用户 --with-http_ss…

大语言模型概述(三):基于亚马逊云科技的研究分析与实践

上期介绍了基于亚马逊云科技的大语言模型相关研究方向&#xff0c;以及大语言模型的训练和构建优化。本期将介绍大语言模型训练在亚马逊云科技上的最佳实践。 大语言模型训练在亚马逊云科技上的最佳实践 本章节内容&#xff0c;将重点关注大语言模型在亚马逊云科技上的最佳训…