JAVA布局模式:GridBagConstraints终极技巧

来源:互联网 发布:linux安装配置jenkins 编辑:程序博客网 时间:2024/06/05 09:32

JAVA布局模式:GridBagConstraints终极技巧

 (2006-11-14 21:07:33)
转载
  
最近正在修改《公交线路查询系统》,做系统的时候都是用NULL布局,由于NULL布局调用windows系统的API,所以生成的程序无法在其他平台上应用,而且如果控件的数量很多,管理起来也比较麻烦,最近我发现一个非常强大的布局模式 :GridBagConstraints布局,先发一个实例:
gridx = 2; // X2
gridy = 0; // Y0
gridwidth = 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);

GridBagLayout之变态玩法:
很多人抱怨GridBagLayout没有XYLayout布局灵活,但是做为一个专业程序,所有组件必须随着窗口大小改变而改变。其次,当仅仅简单使用XYLayout时,需要包含一个大库,对于一些场合这些多余的类超出了可接受范围(例如Applet应用)
拿一个比较简单的界面来作介绍 
1。首先建立一个JFrame,设定它的Layout为XYLayout 
2。在其上堆上控件,对齐好位置,否则转换时会有较大调整 
3。完成创建控件后,设置Layout为GridBagLayout,这时所有控件基本保持原位,待下一步做精细调整 
4。选择一个控件,点击右边属性栏的"constraints" 对应的调整按钮,弹出最重要的属性调整界面 
5。将所有边界和空白去掉,同时Grid大小也暂时去掉,因为这些边距会影响我们的调整 
6。设置需要扩展的行和列 
7。粗轮廓完成后,可以设置组件边距进行精细调整了 
8。精细调整完成,运行调试
JAVA布局模式:GridBagConstraints终极技巧


图14.9参数的设定顺序

insets是类GridBagConstraints的一个限定条件。

insets和Insets既然起的名字相同,两者之间也一
定有相同之处,它们的相似之处就在于它们的用法和用途。insets用来设置
一个组件和其他的组件之间的距离的。所以在上面程序里的按钮和其他的按
钮不同,它和其他的按钮之间都有一定的距离,而不是和其他的按钮挨在一
起。

总之,使用外观管理器给我们带来了许多的方便之处,
使得我们可以轻轻松松地完成各种窗口的外观处理工作。

使用外观管理器除了使得程序设计变得方便以外,还
使得程序变得容易在各种不同的窗口环境下运行,从而协助实现了Java的多
平台之梦。

    小结:

学会使用各种各样的外观管理器会带来事半功倍的编
程效果。

这一章里新学习的类有:

BorderLayout,CardLayout,FlowLayout,GridLayot 
,ridBagLayout,GridBagConstraints和Insets。

类GridBagLayout生成的外观管理器是最具有灵活性
的外观管理器。

类GridBagLayout需要通过类GridBagconstraints
来实现对程序窗口外观的管理。
0 0
原创粉丝点击