Java クラスのリストを含む JList があります。クラスをこの JList から別の JList にドラッグしたいのですが、DataFlavors を使用してインポート可能なドロップを識別する方法について少し混乱しています。
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 の実装に使用できる適切なデータ フレーバーはありますか?