首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GridBagConstraints布局[通俗易懂]

GridBagConstraints布局[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-30 03:45:07
发布于 2022-09-30 03:45:07
9030
举报

大家好,又见面了,我是你们的朋友全栈君。

查看API文档,我们就知道GridBagConstraints有十一个属性!自我感觉API文档里面有些东西讲得不是很好理解,就象gridx 与 gridy 这两个属性一样,有些书上说gridx表示行,gridy表示列!API文档里面更是讲了一大堆。 现在,提供本人对这些属性的理解:

1, gridx: 表示组件的左边缘与网格左部之间的距离,如果学过HTML的话,那么gridx就 相当于HTML 里面的leftmargin属性。

2, gridy: 表示组件的上边缘与网格顶部之间的距离,相当于HTML里面的topmargin属性! 3, ipadx: 表示组件在默认的大小上,往水平方向上再加上多少像素的大小! 4, ipady: 表示组件在默认的大小上,往垂直方向上再加上多少像素的大小!

5, fill: 当组件没有空间大时。它可以确定是否填充空间!

6, anchor: 当组件没有空间大时。它可以确定在显示区域中放置组件的位置!

7,insets: 设置组件之间彼此的间距,它有四个参数,分别是上,左,下,右,

默认值为(0,0,0,0)

8,weightx: 用来设置当窗口变大时,各组件沿水平方向跟着变大的比例,数字越大,表示组件能得到的空间越大

9,weighty: 用来设置当窗口变大时,各组件沿垂直方向跟着变大的比例,数字越大,表示组件能得 到的空间越大

10,gridwidth 用来设置组件所占的单位长度,默认值为1。

11,gridheight 用来设置组件所占的单位高度,默认值为1。

对gridwidth与gridheight做了修改后,必须记得要对fill属性做相应的修改,否则组件所显示的大小 还是原来的大小。 =========================================================================================== 建议:运用GridBagLayout这种布局方式时,比较适合于把所有的组件围成一个四边形。所以,我们在设计这种布局方式前,可以先在纸上画一下每个组件的大概位置,然后保证每一行的长度(即每一行的gridwidth之和)都相等,且每一列的长度(即每一列的gridheight之和)也相等,这样,就能按我们要的蓝图而得到实现! 另外,有些属性是要跟另外一些属性搭配着用的,只有把相联系的属性都做了相应的修改,我们才能看到变化!比如说上面所说到的gridwidth与gridheight必须与fill属性联合起来用才能看到结果!

下面来个实际的例子:

import java.awt.*; import javax.swing.*;

public class Test { public static void main(String[] args) { JFrame f = new JFrame(“Test”); JButton b1 = newJButton(“Button1”); JButton b2 = newJButton(“Button2”); JButton b3 = newJButton(“Button3”); JButton b4 = new JButton(“Button4”); JButton b5 = newJButton(“Button5”); JButton b6 = newJButton(“Button6”); JButton b7 = newJButton(“Button7”); GridBagConstraints c = newGridBagConstraints(); GridBagLayout g = new GridBagLayout(); f.setLayout(g); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(b1); //由于属性都有默认值,前面的按默认值来加入! f.add(b2); f.add(b3);

c.gridy = 1; c.gridwidth = 3 ; //修改了gridwidth值 c.fill = GridBagConstraints.BOTH; //所以这里要做相应的修改才能按gridwidth的值来显示 g.setConstraints(b4,c); f.add(b4); c = new GridBagConstraints(); c.gridy = 2; g.setConstraints(b5,c); f.add(b5); c = new GridBagConstraints(); c.gridy = 3; g.setConstraints(b6,c); f.add(b6); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 2; c.gridwidth = 2; c.gridheight = 2; c.fill =GridBagConstraints.BOTH; //同上面的注释 g.setConstraints(b7,c); f.add(b7); f.pack(); f.setVisible(true); }

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月9日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
gridbagconstraints什么意思_java rectangle
大家好,又见面了,我是你们的朋友全栈君。 说明:GridBagLayout只有一个无参的构造器,要使用它就必须用setConstraints(Component comp,GridBagConstraints constraints)将它和GridBagConstraints关联起来!当GridBagLayout与无参的GridBagConstraints关联时,此时它就相当于一个GridLayout,只不过,用GridLayout布局的组件会随着窗口的变 大(小)而变 大(小)。但GridBagLayout 不会,因此,这就是我们使用GridBagConstants来设置各个约束条件的目的!
全栈程序员站长
2022/09/30
6290
GridBagLayout 以及 GridBagConstraints 用法「建议收藏」
GridBagLayout是一个灵活的布局管理器,部件如果想加入其中需借助GridBagConstraints,其中有若干个参数,解释如下:
全栈程序员站长
2022/09/30
1.9K0
gridbaglayout布局_gridsearch
自己想做个小程序,却在布局上犯了难,使用FlowLayout和BorderLayout这些功能不够强大,使用GridBagLayout却不会,只好求助于文档了。
全栈程序员站长
2022/09/30
4790
Java图形用户界面设计的布局管理器
推荐一个网站给想要了解或者学习人工智能知识的读者,这个网站里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏网站,请点击下方链接查看。 https://www.captainbed.cn/f1
鲜于言悠
2024/06/21
5590
Java图形用户界面设计的布局管理器
GridLayout和
GridLayout布局管理器是以表格形式进行管理的,在使用此布局管理器时必须设置显示的行数和列数,GridLayout类的构造方法如表11.9所示。
张哥编程
2024/12/19
2840
GridLayout和
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
YGingko
2017/12/27
6.6K0
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
Java开发GUI之GridBagLayout布局
    GridBagLayout布局管理器是比GridLayout布局更加强大的表格布局。GridLayout进行的表格布局其中元素尺寸相同,而GridBagLayout则可以灵活配置其中元素的尺寸和位置。同样,GridBagLayout的使用也更加复杂,其布局依赖GridBagConstraints类。
珲少
2018/08/15
1.2K0
Java开发GUI之GridBagLayout布局
Java入门(12)-- Swing程序设计
GUI(图形用户界面)为程序提供图形界面,它最初的设计目的是为程序员构建一个通用的GUI,使其能够在所有的平台上运行,但Java1.0中基础类AWT(抽象窗口工具箱)并没有达到这个要求,于是Swing出现了,它是AWT组件的增强组件,但是它并不能完全替代AWT组件,这两种组件需要同时出现在一个图形用户界面中。
爱学习的程序媛
2022/04/07
5.9K0
Java入门(12)-- Swing程序设计
gridbagconstraints什么意思_gridlayout布局参数
设置组件所处行与列的起始坐标。例如gridx=0,gridy=0表示将组件放置在0行0列单元格内。
全栈程序员站长
2022/09/30
7190
gridbagconstraints什么意思_gridlayout布局参数
java gridbagconstraints_GridBagConstraints
javaGui | 2014-05-14 12:54:00 | 阅读 1737 次 | 评论(1)
全栈程序员站长
2022/09/30
2640
java-GUI编程之布局类型介绍
java使用AWT和Swing相关的类可以完成图形化界面编程,其中AWT的全称是抽象窗口工具集(Abstract Window Toolkit),它是sun公司最早提供的GUI库,这个GUI库提供了一些基本功能,但这个GUI库的功能比较有限,所以后来sun公司又提供了Swing库。通过使用AWT和Swing提供的图形化界面组件库,java的图形化界面编程非常简单,程序只需要依次创建所需的图形组件,并以合适的方式将这些组件组织在一起,就可以开发出非常美观的用户界面。
愷龍
2022/09/26
1.9K0
java-GUI编程之布局类型介绍
选择排序
选择排序 每一趟选择待排数组中最小/大的数字顺序放在已经排好的数列的最后一位,直到所有数字有序。
葆宁
2019/04/19
6280
选择排序
JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener
低级别事件指示Component已获得或失去输入焦点。 由组件生成此低级别事件(如一个TextField)。 该事件被传递给每一个FocusListener或FocusAdapter注册,以接收使用组件的此类事件对象addFocusListener方法。 ( FocusAdapter对象实现FocusListener接口。)每个此类侦听器对象获取此FocusEvent当事件发生时。 有两个焦点事件级别:持久性和暂时性的。 永久焦点改变事件发生时焦点直接移动从一个组件到另一个,例如通过到requestFocus的(呼叫)或作为用户使用TAB键遍历组件。 当暂时丢失焦点的组件的另一个操作,比如释放Window或拖动滚动条的间接结果一时焦点变化的事件发生。 在这种情况下,原来的聚焦状态将被自动一旦操作完成恢复,或者,对于窗口失活的情况下,当窗口被重新激活。 永久和临时焦点事件使用FOCUS_GAINED和FOCUS_LOST事件id传递; 水平可以使用isTemporary()方法的事件区分开来。 如果未指定的行为将导致的id任何特定的参数FocusEvent实例不是从范围FOCUS_FIRST到FOCUS_LAST
JavaEdge
2021/02/22
5.3K0
JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener
学生成绩管理系统——JAVA
本学生成绩管理系统具有录入学生成绩、查询学生成绩、输出学 生按成绩的排名、输出学科的分数四个功能,其中后两个功能在“输出成绩”这一目录下。 此系统可以实现学生成绩管理的一些基本操作。
全栈程序员站长
2022/09/14
5.4K0
学生成绩管理系统——JAVA
grid布局方式_grid网格布局
由GridBagConstraints类实现的布局管理器称为网格组布局管理器,它实现了一个动态的矩形网格,这个矩形风格由无数个矩形单元格组成,每个组件可以占用一个或多个这样的单元格。
全栈程序员站长
2022/10/04
1.3K0
grid布局方式_grid网格布局
Java 基于JFrame的一个简单学生成绩管理系统(内含详细注释)
/* * 若尘 */ package demo; import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.a
ruochen
2021/05/15
1.5K0
Java 基于JFrame的一个简单学生成绩管理系统(内含详细注释)
gridbagconstraints什么意思_gridlayout四个参数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
3620
学生管理系统——Swing窗体版本
上一次一个小伙伴私聊我,说:有没有swing版本的学生管理系统让他参考一下。 这次给他安排上啦!  首先来看看有什么文件吧(得要有个适合自己的命名规则很重要,如果自己都看不懂,那么别人就更难懂啦!)  //我根据图片的信息来写文件内容吧! 这是dao方法 package com.zking.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.
用户10196776
2022/11/22
1.7K0
学生管理系统——Swing窗体版本
gridlayout java_Java GridLayout
GridLayout(int rows, int columns, int hgap, int vgap)
全栈程序员站长
2022/07/01
3150
gridlayout java_Java GridLayout
数据库课程设计-宿舍管理系统「建议收藏」
最近写完了数据库的课程设计,想把整个源码的编辑过程发出来。程序很简单,需要有很多完善的地方,在这里,我想和大家分享写这个程序的心路历程。
全栈程序员站长
2022/08/31
2.1K0
相关推荐
gridbagconstraints什么意思_java rectangle
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档