import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.io.IOException;
import java.util.List;
import javax.swing.*;
/**
* @author Jove
*/
public class DndFrame extends JFrame implements DropTargetListener {
public static void main(String[] args) {
new DndFrame().show();
}
private JLabel label;
private DndFrame() {
super("Test Drag and drop test");
setBounds(100, 100, 400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
new DropTarget(this, this);
getContentPane().add(label = new JLabel());
}
public void dragEnter(DropTargetDragEvent dtde) {}
public void dragExit(DropTargetEvent dte) {}
public void dragOver(DropTargetDragEvent dtde) {}
public void drop(DropTargetDropEvent evt) {
Transferable t = evt.getTransferable();
if (t.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
try {
List fileList =
(List) t.getTransferData(DataFlavor.javaFileListFlavor);
String s = fileList.toString();
label.setText(s);
} catch (UnsupportedFlavorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if (t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
try {
String s = (String) t.getTransferData(DataFlavor.stringFlavor);
label.setText(s);
} catch (UnsupportedFlavorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
evt.rejectDrop();
}
}
public void dropActionChanged(DropTargetDragEvent dtde) {}
}