Java布局管理器(三)之GridLayout(网格布局管理)和CardLayout( 卡片布局管理)

GridLayout(网格布局管理)

顾名思义,就是将容器分成一个个的二维表式的网格,其中布局中的每一个单元,即网格具有相同的尺寸,组件按行依次放入这些被划分出来的小格之中,组件的添加顺序是由左至右,由上到下顺序,与FlowLayout流式布局一样。这种布局管理器是按行与列排列对象的理想选择,是布局管理器中使用较多的一种。不过有一个要求,就是每个网格之中都必须要放组件,不能有空。如果GridLayout构造函数的行与列都被指定为零,则会抛出运行异常IllegalArgumentException。

在实际绘制的行与列的数目的时候也要依据容器内的组件数目而定。GridLayout会首先尝试观察所要求的行与列的数目。如果所要求的行数不为零,则列数通过(组件数+行数-1)/行数 来确定。如果我们的要求是零行,则所使用的行数由类似的公式确定:(组件数+列数-1)/列数。例如,如果我们请求一个3x3的网格,但是在布局中只放置4个组件,最终我们实际得到的是一个2x2的网格。如果我们想避免这种情况,那就要依据计划添加显示的实际对象数目来确定GridLayout尺寸。再比如,当行或列的数目设置为0(两者最多只能有一个为0),布局就会在零设置的方向上无限增长,即非零的方向固定不变,可不可以认为FlowLayout流式布局就是网格布局器的一种特例呢。

举个例子说明上面的公式:

setLayout(new GridLayout(0, 2)),并放置5各组件,则会根据上面公式计算出行数为3,即程序界面布局为3*2的网格,有6个网格放5各组件,最后一个为空,中间的不能为空。
如果组件数超过网格的数目,该布局管理器会自动增加网格的数目,原则上是保持行不变,只在列上增加。

在设计中有时候根据需求,我们不一定总能保证让每个网格处都能放置可供使用的组件,而上面的要求是不能有空的网格,那么我们也有解决方法。就是在需要的地方放置不可见的组件。比如说是空的标签等。

下面再说说该布局管理器的构造方法,有下列3种,当然也是为满足不同的场合需求:

1.GridLayout()参数为空,即默认以每行一列的方式构建一个GridLayout对象。

2. GridLayout(introw,intcolumns):根据指定行数和列数构造一个GridLayout对象,组件间距为0,就像上面所说的BorderLayout(边框布局管理)那样,有时候需要其他的间距,就要再添加一些参数老,第3种方法就是。

3. GridLayout(introw,intcolumns,int hgap,int,vgap): 根据指

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值