所以我想创建一个DataFlavor,它包含一个字符串并使用java 具有mimetype image/svg+xml。我不太确定我是否了解 DataFlavor 和 mimetype 是如何连接的。我不太明白 Java 教程1。
我想要的是能够使用系统剪贴板将我作为 svg 对象生成的字符串移动到其他程序。
我现在使用的代码是:
import java.awt.Toolkit;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
public class SvgClip implements Transferable, ClipboardOwner
{
private String string;
public SvgClip(String str)
{
string = str;
}
public DataFlavor[] getTransferDataFlavors()
{
DataFlavor flavor = new DataFlavor();
try{
//flavor = new DataFlavor("image/svg+xml");S
flavor = new DataFlavor("image/svg+xml;class=java.lang.String");
}catch (Exception ex) {
ex.printStackTrace();
}
return new DataFlavor[]{flavor};
}
public boolean isDataFlavorSupported(DataFlavor flavor)
{
return DataFlavor.imageFlavor.equals(flavor);
}
public Object getTransferData(DataFlavor flavor) throws
UnsupportedFlavorException
{
if (!isDataFlavorSupported(flavor))
throw new UnsupportedFlavorException(flavor);
return string;
}
public void lostOwnership(java.awt.datatransfer.Clipboard clip,
java.awt.datatransfer.Transferable tr)
{
return;
}
}
但是,这不起作用,我java.io.IOException: image/svg+xml
在尝试创建它时得到:
SvgClip strSel = new SvgClip(newfileString);
clipboard.setContents(strSel, null);
有人知道吗?