2013-11-15 43 views
-1

我试图拖动一个按钮,并在我的vaadin用户界面中放下另一个布局。但它不起作用。它不会改变我放弃它的位置。以下是我的代码。任何帮助都很棒。拖动的组件确实改变了位置后的位置

public class TestDrag extends VerticalLayout implements View { 

    @Override 
    public void enter(ViewChangeEvent event) { 

     setSizeFull(); 
     addStyleName("stores"); 


     HorizontalLayout layout1=new HorizontalLayout(); 
     Button button=new Button("Save"); 
     DragAndDropWrapper draggable = new DragAndDropWrapper(button); 
     draggable.setDragStartMode(DragStartMode.COMPONENT); 
     draggable.setSizeFull(); 
     layout1.addComponent(draggable); // add it to some layout 
     addComponent(layout1); 


     HorizontalLayout layout2=new HorizontalLayout(); 
     layout2.setSizeFull(); 
     Button button1=new Button("Cancel"); 
     layout2.addComponent(button1); 

     DragAndDropWrapper destiny = new DragAndDropWrapper(
       layout2); 
     addComponent(destiny); 
     destiny.setDropHandler(new DropHandler() { 

      @Override 
      public AcceptCriterion getAcceptCriterion() { 
       return AcceptAll.get(); 
      } 

      @Override 
      public void drop(DragAndDropEvent event) { 
       Notification.show("Dropped!"); 

      } 
      }); 
     destiny.setSizeFull(); 
    } 


} 

回答

-1

我找到了办法做到这一点,我只是不得不改变滴法如下

 @Override 
     public void drop(DragAndDropEvent event) { 
      Notification.show("Dropped!"); 
      WrapperTransferable t = (WrapperTransferable) event.getTransferable(); 
      layout2.addComponent(t.getSourceComponent()); 
     }