拖拽组件事例

1,页面元素

 

 

Xml代码   收藏代码
  1. < window   id = "dropDemoWin"   apply = "controller.DropDemoController" >   
  2.  < listbox >   
  3.    < listitem   id = "draged1111111111"   draggable = "true"   droppable = "true"   onDrop = "dropDemoWin$composer.onDropListitem(event)" >   
  4.  </ listbox >   
  5. </ window >   

 如果不知道dropDemoWin$composer怎么来的看这里【zk开发】如何在页面中获得composer对象

 

 

2,将拖放的组件添加进来 onDropListitem

 

 

Java代码   收藏代码
  1. public   class  DropDemoController  extends  GenericAutowireComposer {  
  2.   
  3.      public   void  onDropListitem(DropEvent event) {  
  4.         if  (!(event.getDragged()  instanceof  Listitem)) {  
  5.             // ZkUtils.showError("some errors");   
  6.             return ;  
  7.         }  
  8.         // event.getDragged()获得你托动过来的组件   
  9.         Listitem draggedListitem = (Listitem) event.getDragged();  
  10.         // event.getTarget()是你释放鼠标,鼠标下的那个组件,即draggedListitem将要放在那个组件上,或下   
  11.         Listitem targetListitem = (Listitem) event.getTarget();  
  12. //      //放在目标组件之前   
  13. //      targetListitem.getParent()   
  14. //              .insertBefore(draggedListitem, targetListitem);   
  15.         //当然你也可以放在目标组件之后   
  16.         //   
  17.         Component afterComp=targetListitem.getNextSibling();  
  18.         //后一个组件是托过来的组件,什么都不做   
  19.         if (afterComp ==draggedListitem){  
  20.             return ;  
  21.         }  
  22.         if (afterComp== null ){ //如果没有下一个组件说明target是最后一个,直接添加到listbox里   
  23.             draggedListitem.detach();  
  24.             draggedListitem.setParent(targetListitem.getParent());  
  25.         }else { //注意这里的insertBefore的第二个参数   
  26.             targetListitem.getParent().insertBefore(draggedListitem, afterComp);  
  27.         }  
  28.           
  29.     }  
  30.   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值