SWT/JFace開發入門指南(六)〈轉帖〉
使用 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 有比較深的了解。