基于Java的界面布局DSL的设计与实现[2]

发表于:2008-05-07来源:作者:点击数: 标签:设计javaJAVAJavaDSL
关键字: 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