Private Sub PutFilesInClipboard (Files As List)
Dim FilesList As List
FilesList.Initialize
For Each f As String In Files
Dim jo As JavaObject
jo.InitializeNewInstance("java.io.File", Array(f))
FilesList.Add(jo)
Next
Me.As(JavaObject).RunMethod("putFiles", Array(FilesList))
End Sub
#If Java
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.Toolkit;
public static void putFiles(java.util.List files) {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable transferable = new Transferable() {
private final DataFlavor[] flavors = { DataFlavor.javaFileListFlavor };
@Override public DataFlavor[] getTransferDataFlavors() { return flavors; }
@Override public boolean isDataFlavorSupported(DataFlavor flavor) {
return DataFlavor.javaFileListFlavor.equals(flavor);
}
@Override public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
if (!isDataFlavorSupported(flavor)) throw new UnsupportedFlavorException(flavor);
return files;
}
};
clipboard.setContents(transferable, null);
}
#End If