Drop di uno o più file in un'applicazione Java

Matteo - 26 apr 2005 02:26

Questo listener ha un utilizzo molto semplice. Una volta creata la finestra su cui si vuole poter fare il drop, ad esempio identificata dall'oggetto myWnd, si crea l'oggetto MyDropTarget e si associa alla finestra con le seguenti linee di codice:

        dt.setComponent(myWnd);
        dt.setActive(true);

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.io.File;
import java.util.List;

class MyDropTarget extends DropTarget { MyDropTarget() { // some init... }

public void dragEnter(DropTargetDragEvent de) { if (de == null || !de.isDataFlavorSupported( DataFlavor.javaFileListFlavor)) { de.rejectDrag(); return; } de.acceptDrag(de.getDropAction()); } public void drop(DropTargetDropEvent de) { try { if (de == null || !de.isDataFlavorSupported( DataFlavor.javaFileListFlavor)) { de.rejectDrop(); return; } de.acceptDrop(de.getDropAction()); Transferable dt = de.getTransferable(); if (dt == null) { de.rejectDrop(); return; } List l = (List) dt.getTransferData( DataFlavor.javaFileListFlavor); de.getDropTargetContext().dropComplete(true); // do something with the file list...

} catch (Exception e) { e.printStackTrace(); de.rejectDrop(); } } }

 
Weblog Koan Progetti Foto Contatti DW.net map