在TWaver的各个使用手册,文档和Demo中我们可以看到,TWaver提供了Layer的概念,就是图层,这与一些制图软件也有几分相似。在实际应用中也是比较的多。比如TWaver的Demo中有TWaver水印的字样,就是通过使用的TWaver层,将带有水印文字的图层自于最上方并不可选中。
下面我们再通过一个实际的例子具体来看看TWaver Layer的叠加效果,先上最终效果图:
这是一个使用TWaver Java制作的自动布局的例子,有人能看得出这里使用了多少个图层合并而成的吗?
呵呵,我们先来看看整体的一个布局:首先frame中添加了一个LayeroutPanel,panel中放了一个network,network中间部分是用于存放网元,连线,右半部分是scrollPanel
。
一. Network的叠加
我们先来看看中间这个network的图层是如何叠加的
1.阴影层首先是在network的Cushion上添加了一个网元阴影层,cushion在TWaver的定义中是处于所有图层之下的一层。
network.addCanvasCushion(newShadowCushion(this));
阴影也可以这样添加。
2.网元层
在默认图层上添加布局的网元
1
this.cloud=this.createNode("/demo/layout/images/cloud.png");2this.center1=this.createNode("/demo/layout/images/center.png");3this.center2=this.createNode("/demo/layout/images/center.png");4this.gather1=this.createNode("/demo/layout/images/gather.png");5this.gather2=this.createNode("/demo/layout/images/gather.png");6this.router1=this.createNode("/demo/layout/images/router1.png",0,"Router 1");7this.router2=this.createNode("/demo/layout/images/router2.png",1,"Router 2");8this.server1=this.createNode("/demo/layout/images/pc.png",2,"Spring Layout");9this.server2=this.createNode("/demo/layout/images/pc.png",3,"Office Network");10this.server3=this.createNode("/demo/layout/images/pc.png",4,"US Map");11this.client1=this.createNode("/demo/layout/images/pc.png",5,"Bar Chart");12this.client2=this.createNode("/demo/layout/images/pc.png",6,"Tag Cloud");13this.client3=this.createNode("/demo/layout/images/pc.png",7,"Bus Layout");14this.createLink(gather1, client1);15this.createLink(gather1, client2);16this.createLink(gather1, client3);17this.createLink(gather2, server1);18this.createLink(gather2, server2);19this.createLink(gather2, server3);20this.createLink(cloud, center1);21this.createLink(cloud, center2);22this.createLink(router1, center1);23this.createLink(router2, center2);24<