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绑定事件的方法,上面的setOnDragDropped
和setOnDragDone
,设置了方法,但是就是无法执行,不知道是什么原因。我最后还是使用了setOnDragExited
这个监听器。
代码
我们先通过fxml中设置监听器。
可以直接在scenebuilder中直接设置方法
或者再fxml文件中,写上代码onDragExited="#getFile"
,之后去创建getFile方法即可。
@FXML
void getFile(DragEvent event) {
List<File> files = event.getDragboard().getFiles();
//获得文件
File file = files.get(0);
//之后的相关操作,获得文件路径等..
}
Java开发桌面程序学习(六)——拖动文件获得文件路径的更多相关文章
- Java开发桌面程序学习(一)——JavaFx+Jfoenix初始以及搭建
Java开发桌面程序学习(一)--JavaFx+Jfoenix初始以及搭建 前言 想做一个Java的桌面程序,但是,使用原生的Swing感觉又十分麻烦,那个布局都是拿代码设置,看着十分的乱,偶然的情况 ...
- Java开发桌面程序学习(四)——常用应用布局模板和简单分析
布局 前言 刚开始的时候,不知道使用什么布局,发现SceneBuilder其实有8.5版本的,里面就是有提供一个简单的桌面程序模板,8.5可以去官网下载,不过网速好像有点慢,慢慢等吧,官网下载地址 布 ...
- Java开发桌面程序学习(七)——ImageView设置图片以及jar包读取fxml文件
ImageView设置图片 JavaFx的ImageView,设置图片不能直接通过属性设置,只能通过代码来设置 ImageView设置图片 首先,我们让fxml对应的那个controller的java ...
- Java开发桌面程序学习(五)——文件选择器和目录选择器的使用
选择器的使用 DirectoryChooser目录选择器官方文档 FileChooser文件选择器官方文档 文件选择器的使用 JavaFx中有个FileChoser,可以打开一个对话框来选择文件 Fi ...
- Java开发桌面程序学习(二)————fxml布局与控件学习
JavaFx项目 新建完项目,我们的项目有三个文件 Main.java 程序入口类,载入界面并显示 Controller.java 事件处理,与fxml绑定 Sample.fxml 界面 sample ...
- Java开发桌面程序学习(九)——JavaFxTemplate JavaFx模版 更简单进行JavaFx程序开发
JavaFxTemplate 使用说明 项目基于maven,请确保maven配置成功,否则,可能会出现问题 项目内置了commons-io的jar包,Jfoenix的jar包以及常用的工具类JFxUt ...
- Java开发桌面程序学习(三)——基于Jfoenix库的JFXDialog封装仿Android对话框的工具DialogBuilder
对话框的封装使用 最近写了个JFXUtils,DialogBuilder也是包含在里面了 JFXUtils的Github 前言 登录需要弹出登录对话框,但是,Jfoenix库使用对话框比较难受,还得动 ...
- Java开发桌面程序学习(十)——css样式表使用以及Button悬浮改变样式实现
css样式表使用 javafx中的css样式,与html的有些不一样,javafx中的css,是以-fx-background-color这种样子的,具体可以参考文档JavaFx css官方文档 ja ...
- Java开发桌面程序学习(八)——启动浏览器或者打开资源管理器操作与hyperlink超链接的使用
启动浏览器或者打开资源管理器 启动浏览器 java1.6版本以上,Desktop Desktop.getDesktop().browse(new URI("www.cnblogs.com/k ...
随机推荐
- SpringBoot条件注解的总结
https://blog.csdn.net/qq_31142553/article/details/86439950
- vue.js 的 vue-element-admin 实践开发
官方网址: https://panjiachen.github.io/vue-element-admin-site/zh/ 一:面包屑导航,根目录文字修改: 定位到文件 vue-element-sup ...
- java之程序流程控制
顺序结构:代码由上至下依次执行: 分支结构: if () { } else{ } if () { } else if () { } else { } switch(常量){ case 常量: 语句; ...
- Swoole如何处理高并发
有需要学习交流的友人请加入swoole交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的.感谢阅读! 点此加入该群 swoole如何处理高并发 ①Reactor模型介绍 IO复用异步非阻塞 ...
- 关于实现序列化接口Serializable
关于javabean,是否需要实现序列化接口这个问题,只有当这些javabean需要通过分布式网络传输,磁盘持久化等情况下才有必要,其他情况并非必须.
- css多余文本使用....代替
1. 只显示单行文本,多余文本使用...代替 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 2. 显示多行文本,多余文 ...
- Python 爬虫从入门到进阶之路(一)
通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联 ...
- Cypress 之 常用API
.visit() 访问一个远程URL.>>详情参考 Cypress 之 cy.visit() cy.visit(url) cy.visit(url, options) cy.visit(o ...
- PAT 1006 Sign In and Sign Out 查找元素
At the beginning of every day, the first person who signs in the computer room will unlock the door, ...
- Winform中设置ZedGraph鼠标悬浮显示举例最近曲线上的点的坐标值和X轴与Y轴的标题
场景 Winform中设置ZedGraph鼠标双击获取距离最近曲线上的点的坐标值: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/ ...