有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用JLabel的java拖放

我可以拖动一个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);
    }
});

共 (1) 个答案

  1. # 1 楼答案

    这取决于你想拖动什么-拖动JLabel还是只拖动文本

    当您拖动某个对象时,您创建了被拖动对象的“模型”,当您拖放该对象时,您通常会基于该模型在目标位置创建新的对象