基于Java的界面布局DSL的設計與實現[2]
關鍵字: java 例如,如果我們希望在一個給定的 Container C 上的 Rectangle(0,0,300,40) 中,平行擺放一個 TextField 和一個 Button,且希望 TextField 占據 80% 的比例時,可以這樣來描述: beside(TextField(), Button().title(“ok”), 0.8).at(0,0,300,4
關鍵字:
java例如,如果我們希望在一個給定的 Container C 上的 Rectangle(0,0,300,40) 中,平行擺放一個 TextField 和一個 Button,且希望 TextField 占據 80% 的比例時,可以這樣來描述:
beside(TextField(), Button().title(“ok”), 0.8).at(0,0,300,40).in(C)
同樣,我們可以使用 above 來進行如下描述:
above(TextField(), Button().title(“ok”), 0.5).at(0,0,300,60).in(C)
值得注意的是,在我們的界面布局語言中,Component 在 beside 和 above 操作下是封閉的,也就是說 beside 和 above 操作的結果同樣也是 Component,并完全可以作為基本的 Component 來再次進行 beside 和 above 組合。這樣我們就可以使用這兩個簡單的操作生成更加復雜的 Component 來,從而完成復雜的界面布局。比如,我們可以這樣來進行描述:
Component L = beside(TextField (), Button().title(“…”), 0.8);
above(L, Button().title(“ok”), 0.5). at(0,0,300,60).in(C)
原文轉自:http://www.anti-gravitydesign.com