如何将JavaFileList写入剪贴板?
在过去的几天里,我一直在用Java开发设备之间的剪贴板同步实用程序 我唯一一直在努力的事情就是把文件写到剪贴板上。 我可以使用如何将JavaFileList写入剪贴板?,java,clipboard,Java,Clipboard,在过去的几天里,我一直在用Java开发设备之间的剪贴板同步实用程序 我唯一一直在努力的事情就是把文件写到剪贴板上。 我可以使用javaFileListFlavor读取文件列表,但在将另一个文件列表写入剪贴板时,不会发生任何事情 这是可转让类: public class TransferableFiles implements Serializable, Transferable { private List<File> data; public Transferab
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();
}
}
公共类可转移文件实现可序列化、可转移{
私人名单数据;
公共可传输文件(列表数据){
超级();
这个数据=数据;
}
公共DataFlavor[]getTransferDataFlavors(){
返回新的DataFlavor[]{DataFlavor.javaFileListFlavor};
}
@凌驾
支持公共布尔值IsDataFlavor(DataFlavor){
返回(flavor.equals(DataFlavor.javaFileListFlavor));
}
公共对象getTransferData(DataFlavor flavor)引发不受支持的LavorException{
if(flavor.equals(DataFlavor.javaFileListFlavor)){
返回数据;
}否则{
抛出新的不受支持的LavorException(flavor);
}
}
公共列表getData(){
返回数据;
}
公共字符串toString(){
返回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);
}
私有静态无效写入剪贴板(可转移){
getSystemClipboard().setContents(可转移,空);
}
公共静态无效WriteFileToClipboard(列表文件){
WriteTo剪贴板(新的可传输文件(文件));
}
公共静态void main(字符串[]args){
列表文件=新的ArrayList();
添加(新文件(“x”);
添加(新文件(“y”);
添加(新文件(“z”);
writeFilesToClipboard(文件);
}