快速业务通道

组织SWT/JFace控件的利器:Layout - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
立第四个按钮   data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);   Button four = new Button(composite, SWT.PUSH);   four.setText("按钮4");   four.setLayoutData(data);   // 建立下面的一个长按钮   data = new GridData();   data.horizontalAlignment = GridData.FILL;   data.grabExcessHorizontalSpace = true;   data.horizontalSpan = 3;   data.verticalSpan = 2;   data.heightHint = 150;   Button five = new Button(shell, SWT.PUSH);   five.setText("按钮5");   five.setLayoutData(data);   shell.pack();   shell.open();   while (!shell.isDisposed())   {    if (!display.readAndDispatch())    {     display.sleep();    }   }   display.dispose();  } }

上面的例子将网格设成3列,在第一行的第一列放置了第一个按钮。然后将一个Composite对象放到第一行第二、三列(data.horizontalSpan = 2),在这个对象上放到个按钮。最后在下面建立了第5个按钮。

组织SWT/JFace控件的利器:Layout(4)

时间:2010-04-15 天极

FormLayout

FormLayout是SWT中最复杂的布局。在这一部分我将详细讨论FormLayout。这个布局虽然复杂,但它确可以对控件进行更多的控制。

FormLayout和其它的布局类似,也有一个FormData类用于设置布局信息。但我其它的布局不同的是FormLayout使用另外一个类来控制控件的大小和位置,这个类是FormAttachment。控件的上、下、左、右分别要4个FormAttachment对象来控制。通过这些FormAttachment对象可以控制当前控件如何在它的父窗口中显示,以及和其它控件的相对位置。

在FormLayout中,描述位置的4个属性(left、top、right、bottom)都是一个FormAttachment对象。而并不是一个简单的值。在FormAttachment中比较常用的属性是numerator,这个属性描述控件的4个边距Shell的边缘的距离。

按百分比放置控件

可以通过FormAttachment的numerator属性设置百分比。下面的代码将一个按钮在它的父窗口的宽度的40%处放置按钮。当Shell的尽寸改变后,按钮的位置也随之变化,但按钮的大小并不改变。

Button button = new Button(shell, SWT.PUSH); button.setText("按钮"); FormData data = new FormData(); data.left = new FormAttachment(40); button.setLayoutData(data);

但如果同时设置data的left和right属性又如何呢?如果是这样的话,那么这个按钮的尺寸就会改变。下面的例子将一个按钮放到水平方向中心的位置。我们可以将left的比例设计为40%,而right的比例设置60%。如果这样设置,无论窗体如何变化,这个按钮始终在水平方向的中心。这是一个简单的数学计算。如果一个按钮的左边在40%的位置,而右边在60%的位置,也就是说,按钮的右边距窗体的右边也是40%。这样可以算出,按钮的宽度占窗体的20%(哈哈,要想使用FormLayout,可要有一定的数学基础啊!)。

Button button = new Button(shell, SWT.PUSH); button.setText("按钮"); FormData data = new FormData(); data.left = new FormAttachment(40); data.right = new FormAttachment(60); button.setLayoutData(data);

不过在使用FormAttachment同时给left和right或top和bottom赋值时,不能将这两个比例设成一样的,要不就将按钮压扁了(按钮看不到了,宽或高为0)。如果想要按钮在中心位置,这两个比例的和必须是100。而且left(top)的比例要小于right(bottom)的比例。

设置控件的偏移量

SWT之所以提供了布局,目的就是让你尽量少使用绝对坐标来设置控件。但在有时,我们又必须使用绝对坐标。如果是这样的话,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号