使用
Layout
管理
UI
布局
我们在前面在一些例子中已经使用过
Layout
了。那么
Layout
到底是做什么的呢?
我们知道,在设计用户界面时候,我们可以采用的一种办法是手动的为每个部件设置合适当大小和位置。但是这样的话,如果你所要显示的部件比较多,编程量就会非常大,特别是考虑到窗体大小变化时候各种部件的重绘。而实际上,我们可以利用一些通用的规则或者说算法来安排这些部件的排列。比如下图所示的这个窗体:
图
10
很显然,对于这些规则化的部件排列,应该有一些更简单的办法,而不是在代码的各个部分写
xxx.setBounds
之类。
swt
给我们提供了这样的办法,就是使用
Layout
。
你可以把一个
Layout
看成是安排部件位置和大小的一个规则,在应用了
Layout
的
Composite
(我们在这里第一次提到了
Composite
,
Composite
就是一个能够包含其他控件的容器,比如
Shell
就是一个
Composite
,我们会在后面的部分详细介绍
Composite
)中,所有的子控件都会按照这个规则来进行排列。
在目前(写这篇文章的时候
eclipse
最新版本是
3.1M7
),
org.eclipse.swt.layout
包中包含四种已经定义好的
Layout
,它们分别是:
FillLayout
,
FormLayou
,
GridLayout
和
RowLayout
。我在这里不再一一作介绍,而是推荐大家看一下这篇文章《
Understanding Layouts in SWT
》。相信如果你有兴趣看完它的话,就会对
Layout
有比较深的了解。