使用JLabel的java拖放
我可以拖动一个JLabel
并在其中插入一个自定义对象,还是应该使用另一个组件?但是我必须使用TransferHandler
和exportAsDrag
我的代码:
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 楼答案
这取决于你想拖动什么-拖动
JLabel
还是只拖动文本当您拖动某个对象时,您创建了被拖动对象的“模型”,当您拖放该对象时,您通常会基于该模型在目标位置创建新的对象