Java開發桌面程序學習(六)——拖動文件得到文件路徑

拖動得到文件路徑

在windows軟件中,不少軟件都提供了拖動文件的打開文件的功能,JavaFx中也是有這功能,是經過監聽器來實現的windows

監聽器

  • setOnDragDetected(new EventHandler());
    當你從一個Node上進行拖動的時候,會檢測到拖動操做,將會執行這個EventHandler。ui

  • setOnDragEntered(new EventHandler());
    當你拖動到目標控件的時候,會執行這個事件回調。.net

  • setOnDragExited(new EventHandler());
    當你拖動移出目標控件的時候,執行這個操做。code

  • setOnDragOver(new EventHandler());
    當你拖動到目標上方的時候,會不停的執行。xml

  • setOnDragDropped(new EventHandler());
    當你拖動到目標並鬆開鼠標的時候,執行這個DragDropped事件。blog

  • setOnDragDone(new EventHandler());
    當你拖動並鬆手的時候,執行Drag完成操做。事件

我使用的是fxml綁定事件的方法,上面的setOnDragDroppedsetOnDragDone,設置了方法,可是就是沒法執行,不知道是什麼緣由。我最後仍是使用了setOnDragExited這個監聽器。get

代碼

咱們先經過fxml中設置監聽器。
能夠直接在scenebuilder中直接設置方法

或者再fxml文件中,寫上代碼onDragExited="#getFile",以後去建立getFile方法便可。it

@FXML
void getFile(DragEvent event) {
    List<File> files = event.getDragboard().getFiles();
    //得到文件
    File file = files.get(0);
    //以後的相關操做,得到文件路徑等..
}

參考資料event

相關文章
相關標籤/搜索