栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java系统剪贴板可以复制文件吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java系统剪贴板可以复制文件吗?

本质上是。您需要记住,drag’n’drop API和剪贴板API使用相同的概念a

Transferable
,将数据包装到
DataFlavor
s中,因此您可以根据目标系统想要使用的风格来不同地传输数据

通常,在传输文件时,Java使用a

java.util.List
和a
DataFlavor.javaFileListFlavor
。毫无疑问,没有可用于此的漂亮的“包装”类,因此,您需要提供自己的包装,例如…

import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.ClipboardOwner;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class Test {    public static void main(String[] args) {        File file = new File("/path/to/your/file");        List listOfFiles = new ArrayList();        listOfFiles.add(file);        FileTransferable ft = new FileTransferable(listOfFiles);        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ft, new ClipboardOwner() { @Override public void lostOwnership(Clipboard clipboard, Transferable contents) {     System.out.println("Lost ownership"); }        });    }    public static class FileTransferable implements Transferable {        private List listOfFiles;        public FileTransferable(List listOfFiles) { this.listOfFiles = listOfFiles;        }        @Override        public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[]{DataFlavor.javaFileListFlavor};        }        @Override        public boolean isDataFlavorSupported(DataFlavor flavor) { return DataFlavor.javaFileListFlavor.equals(flavor);        }        @Override        public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { return listOfFiles;        }    }}

在我的测试中,我能够放置

File
List
,裹成一个
Transferable
,把它传递给
Clipboard
,并能够通过该系统将文件粘贴(Windows资源管理器)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463587.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号