2012-11-26 61 views
4

我想爲我的JavaFX應用程序添加拖放支持。我的要求是,如果有人從本機文件系統拖動文件並丟棄到JavaFXTableView那麼它必須識別丟棄事件,我怎樣才能得到drpped文件的列表。在JavaFX中拖放事件TableView

+0

在SWT中它更容易,但也許這個可以幫助你: http://stackoverflow.com/questions/9192371/dragn-drop-files-from-the-os-to-java-application-swing – Romczyk

回答

4

我會使用官方的JavaFX 2文檔。

http://docs.oracle.com/javafx/2/drag_drop/jfxpub-drag_drop.htm

http://docs.oracle.com/javafx/2/drag_drop/HelloDragAndDrop.java.html

可以讓你瞭解你需要處理拖動事件的方法:

target.setOnDragOver

target.setOnDragEntered

目標。 setOnDragExited

target.setOnDragDropped

然後與DragEvent這些事件,你可以使用getDragboard()來訪問拖動內容,它繼承Clipboard。從這裏,你有一些方法,如getFiles,這是你所需要的。

+1

是的,它的工作。謝謝回覆。 我可以做相反的事嗎?我的意思是從'JavaFX' TableView拖動對象(行)並將其拖放到本機文件系統。 – Ronak

+0

Dragboard應該是標準的,所以在我給出的第一個鏈接中,有一個「source.setOnDragDetected」,在Dragboard中放置了一些內容(例如,可以使用putFiles):/ *在拖拽板上放置一個字符串*/ ClipboardContent content = new ClipboardContent(); content.putString(source.getText()); db.setContent(content); – Renato