GridBagConstraints布局[通俗易懂]

GridBagConstraints布局[通俗易懂]查看API文档,我们就知道GridBagConstraints有十一个属性!自我感觉API文档里面有些东西讲得不是很好理解,就象gridx与gridy这两个属性一样,有些书上说gridx表示行,gridy表示列!API文档里面更是讲了一大堆。    现在,提供本人对这些属性的理解:  1,  gridx:表示组件的左边缘与网格左部之间的距离,如果学过HTML的话,那么gridx

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

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  查看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);
   }

}

 

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

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

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


相关推荐

  • Netty框架学习之(一):Netty框架简介

    Netty框架学习之(一):Netty框架简介1.简介官方定义为:”Netty是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端”,按照惯例贴上一张HighLevel的架构图:纵观Java系的多种服务器/大数据框架,都离不开Netty做出的贡献,本文对Netty做一个简单的概述2.主要特性Netty有很多重要的特性,主要特性如下:-优雅的设计-统一…

    2025年7月15日
    5
  • 什么叫结构化数据半结构化数据和非结构化数据(xml是非结构化数据)

    计算机信息化系统中的数据分为结构化数据和非结构化数据、半结构化数据。结构化数据结构化数据,是指由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。也称作行数据,一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。比如: id name gen…

    2022年4月17日
    53
  • nginx配置端口_修改redis端口

    nginx配置端口_修改redis端口sudosu#进入nginx自己的配置文件cd/etc/nginx/sites-enabledvimdefault#修改默认监听端口server{ listen80default_server; #这是nginx的端口,可修改 listen[::]:80default_server; #这是ipv6端口…

    2022年9月7日
    4
  • wireshark解析tcp报文的内容_wireshark解析vxlan

    wireshark解析tcp报文的内容_wireshark解析vxlan在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN,FIN,ACK,PSH,RST,URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连…

    2022年9月30日
    5
  • 计算机定时关机命令,电脑定时关机怎么设置_电脑定时关机命令

    计算机定时关机命令,电脑定时关机怎么设置_电脑定时关机命令标签:电脑(142)命令(11)电脑系统WindowsXP第一种:电脑定时关机怎么设置的步骤是这样的:例如,要使电脑在23:00的时候定时自动关机,单击“开始”-“运行”命令,在打开的“运行”对话框中输入at23:00shutdown-s,单击”确定”按钮关闭“运行”对话框即可。这样,您就可以在23:00点时电脑就会弹出“系统关机”对话框,默认30秒钟倒计时并提示保存工作。(当你不想它运行…

    2022年5月14日
    37
  • Modelsim的安装教程

    Modelsim的安装教程提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Modelsim安装二、激活成功教程1.拷贝Crack文件夹中的文件2.激活成功教程过程可能出现的错误前言Modelsim的安装与激活成功教程使用一、Modelsim安装打开下在之后的文件夹,直接双击exe文件进行安装。不熟悉时,可以直接使用默认路径进行安装,不进行路径上的修改。1、下载并解压好文件包,然后运行安装程序根据向导提示进行软件安装2、依提示安装软件过程中需要注意的是,会有三个弹出框提示,首先是是否创建桌面快捷方式提示

    2022年6月16日
    83

发表回复

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

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