首页 > 编程知识 正文

基础java教程,java语言基础教程

时间:2023-05-05 16:56:00 阅读:60509 作者:2076

GridBagLayout是最灵活最复杂的布局管理器。 与GridLayout类似,但网格中的组件可以具有不同的大小,并且可以在网格之间交叉组件。

要使用GridBagLayout布局管理器,请执行以下步骤:

1、创建并使用网格布局管理器

gridbaglayoutlayout=newgridbaglayout (; container.setlayout(layout; 2、创建GridBagConstraints对象(约束条件),设置该对象的关联属性

gridbagconstraintsconstraints=newgridbagconstraints (; constraints.gridx=1; constraints.gridy=1; constraints.gridwidth=1; constraints.gridheight=1; 3、调用GridBagLayout对象的setCondtraints )方法,建立GridBagConstraints对象与托管组件的关联

layout.set constraints (component,condtraints ); 4、向容器中添加组件

container.add(component; 您只需更改属性即可重用GridBagConstraints对象。 在容器中添加多个组件时,可以重复2、3、4。

从上述步骤中可以看到,使用GridBagLayout布局管理器的密钥是GridBagConstraints对象。 这就是控制容器中每个组件布局的核心类,而GridBagConstraints具有许多表示约束的属性。 以下进行说明。

GridBagConstraints通用属性用于将gridx和gridy设置为组件左上角网格的横向和纵向引线。 如果gridx和gridy设置为GridBagConstraints.RELATIVE (默认值),则前一组件之后的gridwidth和gridheight设置组件必须横向跨越多个网格如果将这两个属性都更改为gridbagconstraints并将这两个属性更改为GridBagConstraints.RELATIVE,则表明该组件是当前列或行中倒数第二个组件。 如果fill组件的显示区域大于组件所需的大小,则在设置组件大小并指定如何更改组件时,属性将接收一些属性值

1.NONE :默认值,不更改组件大小

2.HORIZONTAL (将组件的水平长度设置为足以满足显示区域,但高度不变)

3.VERTICAL :将零部件的垂直高度设置为足够高以填充可见区域,但长度不变

4.BOTH )使其成为足以填充显示区域的组件

weightx和weighty设置组件占容器水平和垂直边距的百分比(还取决于权重)。 在容器的水平方向上放置三个组件时,weightx的顺序为1、2和3。 如果容器增加60px,这三个容器将分别增加10、20和30像素。 请注意,这两个属性的默认值为0,不占用额外的空间。 要在容器变大时增大组件,必须同时设置GridBagConstraints的fill属性以及weightx和weighty属性。

举以下代码为例。

import java.awt.*; classlayoutextendsframe {公共布局(字符串标题) gridbaglayoutlayout=newgridbaglayout ); gridbagconstraintsc=newgridbagconstraints (; //创建约束对象this.setlayout(layout ); c.fill=GridBagConstraints.BOTH; c .微信=1; c .权重=1; this.addcomponent('but1 ',layout,c ); //连续添加三个具有相同约束条件的组件this.addcomponent(but2 )、layout和c; this.addcomponent('but3 ',layout,c ); c.grid width=gridbag constraints.remainder; this.addcomponent('but4 ',layout,c ),指示添加的组件是工作的最后一个组件; c .微信=0; c .权重=0; this.addcomponent('but5',layout,c ); c .网格宽度=1; this.addcomponent('but6',layout,c ); c.grid width=gridbag constraints.remainder; this.addcomponent('but7',layout,c ); c .网格高度=2; c .网格宽度=1; c .微信=2; c .权重=2; this.addcomponent('but8',layout,c ); c .网格高度=1; c.grid width=gridbag constraints.remainder; this.addcomponent('but9',layout,c ); this.addcomponent('but10 ',layout,c ); this.pack (; this.setvisible(true; } publicvoidaddcomponent (字符串名称,GridBagLayout layout,GridBagConstraints c ) buttonbut=newbutton ) name; layout.setconstraints(but,c ); this.add(but; } public class main { publicstaticvoidmain (string [ ] args ) throwsexception ) newlayout('gridbaglayout ' ); }运行程序后,显示窗口。 展开或展开窗口,可以看到约束不同属性的不同作用

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。