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


拖動獲得文件路徑

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

監聽器

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

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

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

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

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

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

我使用的是fxml綁定事件的方法,上面的setOnDragDroppedsetOnDragDone,設置了方法,但是就是無法執行,不知道是什么原因。我最后還是使用了setOnDragExited這個監聽器。

代碼

我們先通過fxml中設置監聽器。
可以直接在scenebuilder中直接設置方法

或者再fxml文件中,寫上代碼onDragExited="#getFile",之后去創建getFile方法即可。

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

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM