2011-08-03 5 views
0

誰かが、あるツリーから他のツリーへのDataFlavorを許可するのを助けることができますか?私はいくつかのチュートリアルに従っていて、2つのツリー内でドラッグアンドドロップを行いましたが、それらの間をドラッグできるようにしたいと思います。2つのJTree間のDataFlavors(Java)

これは、オーバーライドされたimportDataメソッド内で例外をスローする部分です。

try { 
     Transferable t = support.getTransferable(); 
     nodes = (MyNode[])t.getTransferData(nodesFlavor); 
} catch(UnsupportedFlavorException ufe) { 
     System.out.println("UnsupportedFlavor: " + ufe.getMessage()); 
} catch(java.io.IOException ioe) { 
     System.out.println("I/O error: " + ioe.getMessage()); 
} 

例外はスローされます。

UnsupportedFlavor:アプリケーション/ X-javaの-JVM-ローカル-objectrefに

任意の助けいただければ幸いです。

乾杯、

ショーン

+0

trace? – AngerClown

答えて

1

はカスタムTransferHandlerを実装する必要があります。 the java tutorialから

リスト、表、およびツリーは、デフォルトではドロップをサポートしていません。 の理由は、これらの コンポーネントのドロップを処理する万能の方法はないということです。 ... Swingはデフォルトの実装である をこれらのコンポーネントに提供できませんが、ドロップのフレームワークはそこにあります。あなたは データの実際の輸入を管理するカスタムのTransferHandlerを提供するだけ を必要としています。」

あなたは文字列としてツリーノードの名前だけをエクスポートする場合、これはかなり簡単なはず。それの残りの部分を参照してください。コードを変更して、 `UnsupportedFlavorException`でスタックトレースを出力するようにすることができますか?そして、あなたはオブジェクトをエクスポートしようとしている場合、あなた自身のオブジェクトをエクスポートする必要があります。

+0

私は自分自身のTransferHandlerクラスを持っており、ドラッグ&ドロップは各ツリー内で正常に動作しています。問題は、あるツリーから別のツリーにノードをドラッグしようとするときです。データフレーバは、両方が同じクラスの異なるインスタンスであっても、事前に準備されていません。 – Intern87

関連する問題