5

私の Java 7 Swing アプリケーションは、次のオブジェクトを含む JTable を備えています。

public class MyFile {

    private long id;
    private long created;
    private long modified;
    private String description;
    private File file;

    public MyFile(long id) {
        this.id = id;
        this.created = System.currentTimeMillis();
    }

    // getter & setter methods ...

}

目標は、これらのMyFileオブジェクトをアプリケーションからドラッグし、ファイル システム (デスクトップなど) にドロップすることです。setDragEnabled(true)を JTable に設定すると、他のアプリケーションからの通常のドラッグ アンド ドロップ操作で知られているように、テーブル エントリをドラッグすると、アイコンが既に "+" 記号に変わります。しかし、実際にオブジェクトをデスクトップにドロップしても何も起こりません...

JTable にMyFileオブジェクト内のFileオブジェクトのみをドロップするように指示するにはどうすればよいですか? 私はもっ​​と多くのものを忘れましたか?

誰かが短いサンプルを提供できますか?

事前にご協力いただきありがとうございます。

4

2 に答える 2

4

Transferable作成された に が含まれていること、DataFlavor#javaFileListFlavorおよびそのフレーバーのデータがインスタンスにFile含まれていることを確認する必要がありMyFileます (より正確には、そのフレーバーの javadoc で説明されているように、Listと一緒に)。File

TransferHandlerこれには、おそらくJTable.

于 2013-05-02T08:40:07.137 に答える