基于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.ltesting.net