2009-11-26 49 views
3

我可以拖動一個JLabel並在其中插入一個自定義對象,還是應該使用另一個組件?但我必須使用TransferHandlerexportAsDrag拖放JLabel

我的代碼:

final JLabel label1 = new JLabel("Drag here"); 
Collection<Person> person= new ArrayList<Person>(); 

//Register transferhandler objects on them label1 transfer itss 
//foreground coloer label2 transfer its backgroundcolor 

//need here a Transferable to put the object 
label1.setTransferHandler(new TransferHandler(....)); 

label1.addMouseMotionListener(new MouseMotionAdapter() { 
    @Override 
    public void mouseDragged(MouseEvent e) { 
     // TODO Auto-generated method stub 
     TransferHandler handler = label1.getTransferHandler(); 
     handler.exportAsDrag(label1, e, TransferHandler.COPY); 
    } 
}); 

回答

2

取決於你想拖哪方面 - JLabel或只是文本。

當你拖動一些東西時,你創建了一個拖動對象的「模型」,當你拖放它時,你通常會根據該模型在目標處創建一些新東西。