Layouts 是一個容器用來對其子成員布局的一個算法,符合 Strategy Design Pattern . 當 SWT 打開一個 Composite 時,會調用 Composite 里的 layout.computeSize() 計算 Composite 的大小,然后再調 用 layout.layout() 設置子成員的位置和大小 . 假如需要, layout 會調用子成員的 getLayoutData() 來獲得單個子成員非凡的屬性。
computeSize() 和 layout() 是抽象類 Layout 的兩個抽象方法。
要定義一個新的 layout ,也就是要定義一個 Layout 的子類, 實現 computeSize 和 layout. 對 BorderLayout 來說,我們需要區分子控件是在哪個位置的 , 是 WEST 的,還是 EAST 的,還是 CENTER 的,這個屬性通過 Control.setLayoutData() 方法保存的各個控件里。
廢話少說了,先看源代碼
新聞熱點
疑難解答