在过去的日子里,我一直在用java开发设备间的剪贴板同步实用程序。
我一直在努力的唯一一件事就是把文件写到剪贴板上。我可以使用 javaFileListFlavor
,但在将另一个文件列表写入剪贴板时,什么也没有发生。
这是可转移类:
public class TransferableFiles implements Serializable, Transferable {
private List<File> data;
public TransferableFiles(List<File> data) {
super();
this.data = data;
}
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[]{DataFlavor.javaFileListFlavor};
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return (flavor.equals(DataFlavor.javaFileListFlavor));
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
if (flavor.equals(DataFlavor.javaFileListFlavor)) {
return data;
} else {
throw new UnsupportedFlavorException(flavor);
}
}
public List<File> getData() {
return data;
}
public String toString() {
return data.toString();
}
}
我给它写了这样一封信:
private static void writeToClipboard(Transferable transferable) {
getSystemClipboard().setContents(transferable, null);
}
public static void writeFilesToClipboard(List<File> files) {
writeToClipboard(new TransferableFiles(files));
}
public static void main(String[] args) {
List<File> files = new ArrayList<File>();
files.add(new File("x"));
files.add(new File("y"));
files.add(new File("z"));
writeFilesToClipboard(files);
}
暂无答案!
目前还没有任何答案,快来回答吧!