java:布局方法“网格组布局”(一)

本文深入探讨Java中的网格组布局,详细解释了网格约束条件,包括坐标、尺寸和填充属性。通过源码A、B、C的逐步解析,展示了全填充(BOTH)、垂直填充(VERTICAL)和水平填充(HORIZONTAL)的效果,帮助读者理解如何精确布置窗体组件。
摘要由CSDN通过智能技术生成

目录

一、关键代码

(一)、网格组约束条件

(二)、约束的“条件”

1、坐标

2、尺寸

3、填充(fill)属性

二、网格组布局说明

(一)、源码A

1、源码A说明

2、源码A运行效果

(二)、源码B(源码A基础上添加方法way3、way4)

1、源码B说明

2、源码B的运行效果

(三)、源码C(源码B的基础上添加方法way4)

1、源码C说明

2、源码C的运行效果

(四)、源码C关于fill属性的运行效果

1-1、全填充(BOTH):

1-2、按钮3(名为:0.0)全填充(BOTH)的运行效果:

2-1、垂直填充(VERTICAL):

2-2、按钮3(名为:“0.0”)垂直填充(VERTICAL)的运行效果:

3-1、水平填充(HORIZONTAL):

3-2、按钮3(名为:“0.0”)水平填充(HORIZONTAL)的运行效果:

三、定位日期


一、关键代码

(一)、网格组约束条件

        由下代码创建一个网格包约束条件g_0,最后再由g_0分别指定不同的条件,如位置、尺寸,等。

// Grid(网格),Bag(包),Constraints(限制)
GridBagConstraints g_0=new GridBagConstraints();// 创建一个网格包约束条件g_0

(二)、约束的“条件”

        以下为本文用到的网格包约束条件中的“条件”。

1、坐标

        网格(grid)的x,y坐标(gridx、gridy

        坐标数值由0开始,并未由1开始。坐标的第0行,即为第一行。

g_0.gridx=0;// x坐标1行位置,计算机以0为第一个
g_0.gridy=0;// y坐标1列位置

2、尺寸

        网格(grid)的宽度(width)、高度(height

        (尺寸数值非零开头,和坐标不同)

g_0.gridwidth=1;// 宽度
g_0.gridheight=2;// 高度

3、填充(fill)属性

        (1)、默认方式为“居中(center)”

        (2)、上下,左右全:BOTH 。小写:both

        (3)、垂直:VERTICAL 。小写:vertical

        (4)、水平:HORIZONTAL 。小写:horizontal

g_3.fill=GridBagConstraints.BOTH;// 按钮填充方式,全全填充
g_3.fill=GridBagConstraints.VERTICAL;// 填充方式,垂直填充
g_3.fill=GridBagConstraints.HORIZONTAL;// 填充方式,水平填充

二、网格组布局说明

        网格组布局,可以更精确的布置窗体内各构建的位置。在一个窗体中使用网格组布局,布置“按钮”“标签”等构件时,可以先引入网格组布局包A,然后再根据自己的需求对A设置好相关的约束条件便可。“约束”内容,比如:坐标、尺寸、填充方式、方位、具体位置等。本文记录的约束内容为:坐标、尺寸和填充方式,其它约束条件下篇博文记录。

(一)、源码A

1、源码A说明

        展示网格组布局中约束条件的效果,先建立一个“窗体”,代码部分看源码A的方法way1,窗体的属性详细内容看way1部分代码。

        在“窗体”中添加3个“按钮”,具体为源码A中的方法way2部分代码,数据坐标分别为(0-0),(1-1),(2-2),(x-y坐标)。由于坐标数值由0开始,则前面的way2的三个坐标分别为(第一行-第一列),(第二行-第二列),(第三行-第三列)。

        源码A如下

/**所想:
    网格组布局
*/

/*
	引入的包,以下的import等等
*/
import java.awt.GridBagConstraints;// Constraints(限制) 
import java.awt.GridBagLayout;//网格包
import java.awt.Container;// 容器
import java.awt.Color;// 颜色

import javax.swing.JFrame; // 窗体
import javax.swing.JButton;// 按钮
import javax.swing.JPanel;// java面板

class Demo{
	JFrame f=new JFrame();// 设置主窗体
	Container c;// 主容器

	/*	
		方法way1
		创建一个新方法way1,设置窗体的规格
		Content(容器),Pane(镶嵌),Grid(网格),Bag(包),Layout(布局)
	*/
	void way1(){
		// Content(容器),Pane(镶嵌),layout(布局)
		c=f.getContentPane();//容器c镶嵌于窗体中
		c.setLayout(new GridBagLayout());// 容器c建立网格包布局
		f.setSize(1000,800);// 设置窗体宽、高

		// location(位置),Relative(相对于),括号里为某“组件”参数,为null时窗体在桌面居中显示
		f.setLocationRelativeTo(null);// 窗体在桌面居中显示,null(空值)

		// Default(默认),operation(操作),点击×程序便停止运行
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/*
		方法way2
		创建一个新方法way2,将3个按钮限制于x,y坐标为1-1,2-2,3-3的布局中
		主要使用:gridx及gridy,网格坐标的意思	
	*/
	void way2(){
		// Grid(网格),Bag(包),Constraints(限制)
		GridBagConstraints g_0=new GridBagConstraints();// 创建一个网格包约束条件g_0
		g_0.gridx=0;// x坐标1行位置,计算机以0为第一个
		g_0.gridy=0;// y坐标1列位置
		c.add(new JButton("按钮1"),g_0);// 在容器里创建一个“按钮1”,约束条件“g_0”

		GridBagConstraints g_1=new GridBagConstraints();// 约束“g_1”
		g_1.gridx=1;// x坐标2行位置
		g_1.gridy=1;// y坐标2列位置
		c.add(new JButton("按钮2"),g_1);// 容器里加“按钮2”,约束为“g_1”
		
		GridBagConstraints g_2=new GridBagConstraints();//约束“g_2”
		g_2.gridx=2;// x坐标3行位置
		g_2.gridy=2;// y坐标3列位置
		c.add(new JButton("按钮3"),g_2);// 容器里加“按钮3”,约束为“g_2”
	}

	public static void main(String[] args){
		Demo d=new Demo();// 创建一个新类型d
		d.way1();// 对d使用方法way1,创建一个窗体,包括布局参数等
		d.way2();// 对d使用方法way2,容器里的按钮等

		d.f.setVisible(true);// 类型d、窗体可见,为真
	}
}

2、源码A运行效果

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值