GridBagConstraints参数详解

发布时间:2025-12-09 16:30:52 浏览次数:5

GridBagConstraints参数详解

gridBagConstraints 参数 gridx = 2; // X=2gridy = 0; // Y=0gridwidth = 1; // 横占一个单元格gridheight = 1; // 列占一个单元格weightx = 0.0; // 当窗口放大时,长度不变weighty = 0.0; // 当窗口放大时,高度不变anchor = GridBagConstraints.NORTH; // 当组件没有空间大时,使组件处在北部fill = GridBagConstraints.BOTH; // 当格子有剩余空间时,填充空间insert = new Insets(0, 0, 0, 0); // 组件彼此的间距ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间new GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, insert, ipadx, ipady);gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 4);//设置组件的位置

gridx,gridy

设置组件所处行与列的起始坐标。例如gridx=0,gridy=0表示将组件放置在0行0列单元格内。

gridwidth和gridheight

设置组件横向与纵向的单元格跨越个数。
它们一个负责组件的水平宽度(gridwidth),一个负责组件的垂直高度(gridheight )。由此我们可以知道,组件的大小是可以变化的。组件的形状是不能改变的,永远是矩形的。
  gbc.gridwidth= GridBagConstraints.REMAINDER;
这是Java精心为大家设计的一个特别有用的变量,使用它就可以通知外观管理器让组件占据本行的所有剩余空间,而不必去计算宽度值是多少,很自动化。
可以通过GridBagConstraints的RELETIVE,和REMAINDER来进行指定,它的用法是:

当把gridx值设置为GridBagConstriants.RELETIVE时,所添加的组件将被放置在前一个组件的右侧。同理,对gridy 值设置为GridBagConstraints.RELETIVE时,所添加的组件将被放置在前一个组件的下方,(这是一种根据前一个组件而决定当前组 件的相对放置方式)

对gridweight和gridheight也可以应用GridBagConstraints的REMAINDER方式,创建的组件会从创建的起点位置 开始一直延伸到容器所能允许的界限为止。该功能使得你可以创建跨越某些行或列的组件,从而改变相应方向上组件的数目,即使其后在布局的其他地方添加额外的组件也是如此。

weightx,weighty

设置窗口变大时的缩放比例。

anchor

设置组件在单元格中的对齐方式。由以下常量来定义

GridBagConstraints.CENTER
GridBagConstraints.EAST
GridBagConstraints.WEST
GridBagConstraints.SOUTH
GridBagConstraints.NORTH
GridBagConstraints.SOUTHEAST
GrisBagConstraints.SOUTHWEST
GridBagConstraints.NORTHEAST
GridBagConstraints.NORTHWEST

fill

当某个组件未能填满单元格时,可由此属性设置横向、纵向或双向填满。由以下常量来定义

GridBagConstraints.NONE

GridBagConstraints.HORIZONTAL

GridBagConstraints.VERTICAL

GridBagConstraints.BOTH

ipadx,ipady

将单元格内的组件的最小尺寸横向或纵向扩大。若一个组件的尺寸为30*10像素,ipadx=2,ipady=3,则单元格内的组件最小尺寸为34*16像素

insets

Insets是AWT里面一个类的名字,它的用途是用来定义组件容器周围的空间大小,其中带有四个参数:

Insets(第一个参数,第二个参数,第三个参数,第四个参数 )Insets(上,左,下,右)

insets用来设置一个组件和其他的组件之间的距离的。

fill

每个组件有一定的原始大小,例如在类FlowLayout外观管理器的管理之下显示的就都是组件的本身原始大小。如果我们分配给一个组件的空间比它原本所需要的空间大时,就需要一定的方式方法来决定如何处理这一部分多余的空间。这时就用到了fill值。Java根据人们给这个fill设定的值来决定如何处理比组件原始空间大的那部分空间。

fill可以取四种不同的值,它们分别代表了四种不同的剩余空间处理方式:

GridBagConstraints.NONE //不必理睬剩余空间的存在,让它空着好了。GridBagConstraints.BOTH //不让一点剩余空间存在,改变组件的大小,让它填满分配给它的整个空间。GridBagConstraints.HORIZONTAL //调整组件的大小,把水平方向的空间填满。GridBagConstraints.VERTICAL //调整组件的大小,把垂直方向的空间填满,让水平方向的空间空着吧。

构造函数GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, insert, ipadx, ipady)没改的表示不赋值东:GridBagConstraints(gridx, gridy,1, 1, weightx, weighty, anchor, GridBagConstraints.BOTH, insert, ipadx, ipady);西:GridBagConstraints(gridx, gridy,GridBagConstraints.REMAINDER, 1, weightx, weighty, anchor, GridBagConstraints.BOTH, insert, ipadx, ipady);南:GridBagConstraints(gridx, gridy,1, 4, weightx, weighty, anchor, GridBagConstraints.BOTH, insert, ipadx, ipady);北:GridBagConstraints(gridx, gridy,2, 2, weightx, weighty, anchor, GridBagConstraints.BOTH, insert, ipadx, ipady);中:GridBagConstraints(gridx, gridy,GridBagConstraints.REMAINDER, 2, weightx, weighty, anchor, GridBagConstraints.BOTH, insert, ipadx, ipady);六:GridBagConstraints(gridx, gridy,GridBagConstraints.REMAINDER, 2, weightx, weighty, anchor, GridBagConstraints.BOTH, new Insets(5,6,7,8), ipadx, ipady);
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477