我可以拖动JLabel并将自定义对象插入其中,还是应该使用其他组件?但是我必须使用TransferHandlerexportAsDrag

我的代码:

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);
    }
});

最佳答案

取决于您要拖动的内容-JLabel或仅是文本。

拖动对象时,将创建所拖动对象的“模型”,拖放对象时,通常会基于该模型在目标位置创建新对象。

10-08 20:08