gridbagconstraints什么意思_java rectangle

gridbagconstraints什么意思_java rectangle说明:GridBagLayout只有一个无参的构造器,要使用它就必须用setConstraints(Componentcomp,GridBagConstraintsconstraints)将它和GridBagConstraints关联起来!当GridBagLayout与无参的GridBagConstraints关联时,此时它就相当于一个GridLayout,只不过,用GridLayout布局的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
说明:GridBagLayout只有一个无参的构造器,要使用它就必须用setConstraints(Component comp,GridBagConstraints constraints)将它和GridBagConstraints关联起来!当GridBagLayout与无参的GridBagConstraints关联时,此时它就相当于一个GridLayout,只不过,用GridLayout布局的组件会随着窗口的变 大(小)而变 大(小)。但GridBagLayout 不会,因此,这就是我们使用GridBagConstants来设置各个约束条件的目的!


      查看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 = new JButton("Button1");       JButton b2 = new JButton("Button2");       JButton b3 = new JButton("Button3");       JButton b4 = new JButton("Button4");       JButton b5 = new JButton("Button5");       JButton b6 = new JButton("Button6");       JButton b7 = new JButton("Button7");             GridBagConstraints c = new GridBagConstraints();       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);   }}

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195509.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • R语言本地安装包教程

    R语言本地安装包教程第一步从R语言官网,下载package:‘Hmisc’,‘data.table’,‘UsingR’。以’data.table’为例,如图,其他两个方法相同。第二步下载好包到本地后,别忘了下载到哪了.然后在R软件选择-程序包-installpackagefromlocalfiles,选择下载好的’data.table’文件;然后选择-程序包-加载程序包-selecton…

    2022年6月27日
    188
  • windows平台下,TensorFlow的安装、卸载以及遇到的各种错误

    windows平台下,TensorFlow的安装、卸载以及遇到的各种错误本人在安装TensorFlow过程中,遇到了很多问题,现将安装成功过程中,遇到的问题以及解决方法总结如下:TensorFlow安装要求:windows系统64位、python3.5版本、TensorFlow1.1或TensorFlow1.2;安装的具体过程:1、安装anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archiv…

    2022年6月18日
    31
  • (私人收藏)型男讲座-瞬间必杀50技「建议收藏」

    (私人收藏)型男讲座-瞬间必杀50技「建议收藏」型男讲座-瞬间必杀50技https://pan.baidu.com/s/1rRZWRwZlqzoxM8X1umlsnA1ipz

    2022年7月3日
    25
  • pycharm激活码2021-激活码分享

    (pycharm激活码2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月20日
    187
  • 大数据治理包括哪几个方面

    大数据治理包括哪几个方面在数据治理中 涉及到了前端业务系统 后端业务数据库系统再到业务终端的数据分析 从源头到终端再回到源头 形成的一个闭环负反馈系统 同样地 在数据治理中 我们也需要一套标准化的规范来指导数据的采集 传输 储存以及应用 数据治理包括数据规划 数据采集 数据储存管理 数据应用四个方面 根据每一个方面的特点 我们可以将数据治理总结为四个字 即 理 采 存 用 01 理 梳理业务流程 规划数据资源 对于企业来说 每天的实时数据都会超过 TB 级别 需要采集用户的哪些数据 这么多的数据放

    2025年6月2日
    2
  • JS 为对象添加属性的方法

    JS 为对象添加属性的方法常用数组添加的方式是 push 那么动态为对象添加属性该用什么方式呢 varobj obj name aaa obj age 22 console log obj obj name aaa age 22

    2025年7月22日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号