我想在同一个JVM中的两个组件之间实现拖放。我传递的是一系列不可序列化的对象,所以我试图找到javaJVMLocalObjectMimeType的正确咒语来传入。但是,我一直得到一个非法的参数异常。
例如,如果我有ExampleClass
附加类参数有效:
new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType+";class="+ExampleClass.class.getName());
但是数组类型失败了:
new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType+";class="+ExampleClass[].class.getName());
抛出:
java.lang.IllegalArgumentException: failed to parse:application/x-java-jvm-local-objectref;class=[LExampleClass
AARGH!在挥杆中拖拽是如此彻底的混乱!
答案 0 :(得分:2)
试试这个:
new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
";class=\""+ExampleClass.class.getName() + "\"");
由于数组的名称(例如“[Ljava.lang.Object;”)具有特殊字符,因此必须引用“class”参数。