我們在前面在一些例子中已經使用過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。我在這裡不再一一作介紹。