1

同じ JVM 内の 2 つのコンポーネント間でドラッグ アンド ドロップを実装したいと考えています。シリアル化できないオブジェクトの配列を渡しているので、渡す 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

ああ!Swing でのドラッグ & ドロップは完全にめちゃくちゃです!

4

1 に答える 1

2

これを試して:

new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
               ";class=\""+ExampleClass.class.getName() + "\"");

配列の名前 ("[Ljava.lang.Object;" など) には特殊文字が含まれているため、"class" パラメータを引用符で囲む必要があります。

于 2009-02-23T19:35:49.907 に答える