我尝试熟悉java中的拖放,但我发现的所有教程都是......(让我生气)
我想要的只是从 JList(包含在名为“UserPanel”的自制 JPanel 中)拖动“PublicUserLabel”并将其放入从 JTabbedPanel 继承的自制类中。拖动对象本身而不是其字符串表示非常重要!
这就是我到目前为止所拥有的:PublicUserLabel
public class PublicUserLabel extends JLabel implements DragSourceListener, DragGestureListener, Transferable
{
private DragSource ds;
private PublicUser user;
public PublicUserLabel(PublicUser user)
{
super(user.getName());
this.user = user;
ds = new DragSource();
ds.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY_OR_MOVE, this);
}
@Override
public void dragGestureRecognized(DragGestureEvent e)
{
ds.startDrag(e, DragSource.DefaultCopyDrop, this, this);
}
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException
{
if (flavor.equals(PublicUserFlavor.publicUserFlavor))
{
return this;//TODO ?
}
throw new UnsupportedFlavorException(flavor);
}
@Override
public DataFlavor[] getTransferDataFlavors()
{
DataFlavor[] df = new …Run Code Online (Sandbox Code Playgroud)