我有一个包含 java 类列表的 JList。我想将一个类从这个 JList 拖到另一个,但我对如何使用 DataFlavors 识别可导入的 drop 有点困惑。
TransferHandler transferHandler = new TransferHandler("hello") {
public boolean canImport(TransferHandler.TransferSupport info) {
try {
DataFlavor flavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
";class=org.foo.MyClass");
if (info.isDataFlavorSupported(flavor)) {
return true;
}
} catch (ClassNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
System.out.println("not supported");
return false;
}
};
也许这是不可能的,因为源列表的模型正在从类数组中返回一个对象。这是在搞砸吗?
public Object getElementAt(int index) {
return _snippetClasses[index];
}
我没有看到任何堆栈跟踪,所以我认为它似乎找到了类(我尝试添加一个错字只是为了验证)。我还尝试查看 TransferSupport 对象的数据风格,但似乎有很多,所以我不知道这意味着什么。
我可以使用适当的数据风格来实现 canImport 吗?