【Java Swing】Java复杂的布局管理——网格组布局(GridBagLayout)

网格组布局是Java较为复杂的布局,虽然这又背于Java简单的初衷。网格组布局十分优雅,组件可以随着窗口的调整自动放大或缩小。

要有效地使用网格组布局,必须自定义GridBagConstraints与其组件关联的一个或多个对象。您可以GridBagConstraints 通过设置一个或多个实例变量来自定义对象:

GridBagConstraints.gridx, GridBagConstraints.gridy

每个格子都有自己的单元格坐标(gridx,gridy),并不以长度为单位,左上角的原点单元格,坐标为(0,0)。右边格子的坐标为(1,0),一次类推。

GridBagConstraints.gridwidth, GridBagConstraints.gridheight

指跨过的单元格数,网格坐标为(0,0)的单元格网格长度为(2,2),表明其占据了2*2的方格

GridBagConstraints.fill

指窗口拉伸时的填充的方向

GridBagConstraints.insets

指定组件的外部填充,即组件与其显示区域的边缘之间的最小间距。

GridBagConstraints.anchor

指对齐方式

GridBagConstraints.NORTH
GridBagConstraints.SOUTH
GridBagConstraints.WEST
GridBagConstraints.EAST
GridBagConstraints.NORTHWEST
GridBagConstraints.NORTHEAST
GridBagConstraints.SOUTHWEST
GridBagConstraints.SOUTHEAST
GridBagConstraints.CENTER (默认)
方向相对值:
GridBagConstraints.PAGE_START
GridBagConstraints.PAGE_END
GridBagConstraints.LINE_START
GridBagConstraints.LINE_END
GridBagConstraints.FIRST_LINE_START
GridBagConstraints.FIRST_LINE_END
GridBagConstraints.LAST_LINE_START
GridBagConstraints.LAST_LINE_END
基准相对值:
GridBagConstraints.BASELINE
GridBagConstraints.BASELINE_LEADING
GridBagConstraints.BASELINE_TRAILING
GridBagConstraints.ABOVE_BASELINE
GridBagConstraints.ABOVE_BASELINE_LEADING
GridBagConstraints.ABOVE_BASELINE_TRAILING
GridBagConstraints.BELOW_BASELINE
GridBagConstraints.BELOW_BASELINE_LEADING
GridBagConstraints.BELOW_BASELINE_TRAILING

GridBagConstraints.weightx, GridBagConstraints.weighty

指最大拉伸宽度或高度

要想更加方便地使用GridBagLayout,一般我们重写GridBagConstraints,改名为GBC。这样我们可以采用流式写法,快速定义GBC的参数。代码如下:

import java.awt.*;

public class GBC extends GridBagConstraints
{
   
	public GBC(int gridx,int gridy)
	{
   
		this.gridx=gridx;
		this.gridy=gridy;
	}
	public GBC(int gridx,int gridy,int gridwidth,int gridheight)
	{
   
		this.gridx=gridx;
		this.gridy=gridy;
		this.gridwidth=gridwidth;
		this.gridheight=gridheight;
	}
	public GBC setAnchor(int anchor)
	{
   
		this.anchor=anchor;
		return this;
	}
	publ
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值