2013-11-15 42 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()); 
     }