组织SWT/JFace控件的利器:Layout - 编程入门网
立第四个按钮
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的尽寸改变后,按钮的位置也随之变化,但按钮的大小并不改变。
但如果同时设置data的left和right属性又如何呢?如果是这样的话,那么这个按钮的尺寸就会改变。下面的例子将一个按钮放到水平方向中心的位置。我们可以将left的比例设计为40%,而right的比例设置60%。如果这样设置,无论窗体如何变化,这个按钮始终在水平方向的中心。这是一个简单的数学计算。如果一个按钮的左边在40%的位置,而右边在60%的位置,也就是说,按钮的右边距窗体的右边也是40%。这样可以算出,按钮的宽度占窗体的20%(哈哈,要想使用FormLayout,可要有一定的数学基础啊!)。
不过在使用FormAttachment同时给left和right或top和bottom赋值时,不能将这两个比例设成一样的,要不就将按钮压扁了(按钮看不到了,宽或高为0)。如果想要按钮在中心位置,这两个比例的和必须是100。而且left(top)的比例要小于right(bottom)的比例。 设置控件的偏移量 SWT之所以提供了布局,目的就是让你尽量少使用绝对坐标来设置控件。但在有时,我们又必须使用绝对坐标。如果是这样的话, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |