使用 Layout 管理 UI 布局
我們?cè)谇懊嬖谝恍├又幸呀?jīng)使用過 Layout 了。那么 Layout 到底是做什么的呢?
我們知道,在設(shè)計(jì)用戶界面時(shí)候,我們可以采用的一種辦法是手動(dòng)的為每個(gè)部件設(shè)置合適當(dāng)大小和位置。但是這樣的話,如果你所要顯示的部件比較多,編程量就會(huì)非常大,特別是考慮到窗體大小變化時(shí)候各種部件的重繪。而實(shí)際上,我們可以利用一些通用的規(guī)則或者說算法來安排這些部件的排列。比如下圖所示的這個(gè)窗體:
圖
10
很顯然,對(duì)于這些規(guī)則化的部件排列,應(yīng)該有一些更簡(jiǎn)單的辦法,而不是在代碼的各個(gè)部分寫
xxx.setBounds
之類。
swt
給我們提供了這樣的辦法,就是使用
Layout
。
你可以把一個(gè)
Layout
看成是安排部件位置和大小的一個(gè)規(guī)則,在應(yīng)用了
Layout
的
Composite
(我們?cè)谶@里第一次提到了
Composite
,
Composite
就是一個(gè)能夠包含其他控件的容器,比如
Shell
就是一個(gè)
Composite
,我們會(huì)在后面的部分詳細(xì)介紹
Composite
)中,所有的子控件都會(huì)按照這個(gè)規(guī)則來進(jìn)行排列。
在目前(寫這篇文章的時(shí)候 eclipse 最新版本是 3.1M7 ), org.eclipse.swt.layout 包中包含四種已經(jīng)定義好的 Layout ,它們分別是: FillLayout , FormLayou , GridLayout 和 RowLayout 。我在這里不再一一作介紹,而是推薦大家看一下這篇文章《 Understanding Layouts in SWT 》。相信如果你有興趣看完它的話,就會(huì)對(duì) Layout 有比較深的了解。
?
?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=376421