文档章节

窗口监听文件拖拽

Bony
 Bony
发布于 2017/08/05 17:03
字数 224
阅读 10
收藏 0
        1.获取拖入的文件
		//build drag
		txtAreaChangePane.setOnDragOver(new EventHandler<DragEvent>() { //node添加拖入文件事件
			public void handle(DragEvent event) {
				Dragboard dragboard = event.getDragboard(); 
				if (dragboard.hasFiles()) {
					File file = dragboard.getFiles().get(0);
					if (file.getAbsolutePath().endsWith(".java")) { //用来过滤拖入类型
						event.acceptTransferModes(TransferMode.COPY);//接受拖入文件
					}
				}

			}
		});
		txtAreaChangePane.setOnDragDropped(new EventHandler<DragEvent>() { //拖入后松开鼠标触发的事件
			public void handle(DragEvent event) {
				// get drag enter file
				Dragboard dragboard = event.getDragboard();
				if (event.isAccepted()) {
					File file = dragboard.getFiles().get(0); //获取拖入的文件
					
				}
			}
		});
	2.拖出生成文件
		//drag out 
		  ClipboardContent content = new ClipboardContent(); //用来放拖出的内容
		txtAreaCodeSpace.setOnDragDetected(new EventHandler<MouseEvent>() { //在node里面拖动事件
			public void handle(MouseEvent event) {
				
					Dragboard dragboard = txtAreaCodeSpace.startDragAndDrop(TransferMode.ANY); //开启拖出事件
					content.clear();
					File file = new File(txtClassName.getText() + ".java"); //创建拖出的文件
					OutputStreamWriter outputString = null;
					try {
						file.createNewFile();
						outputString = new OutputStreamWriter(new FileOutputStream(file));
						outputString.write(txtAreaCodeSpace.getText());
					} catch (IOException e) {
						e.printStackTrace();
					} finally {
						try {
							outputString.close();
						} catch (IOException e) {
							e.printStackTrace();
						}
						outputString = null;
					}
					List<File> files = new ArrayList<File>();
					files.add(file);
					content.putFiles(files); //将文件保存到面板里面
					dragboard.setContent(content); //放入拖出内容
				
			}
		});

 

© 著作权归作者所有

Bony
粉丝 14
博文 156
码字总数 98835
作品 0
深圳
QA/测试工程师
私信 提问
nw.js FrameLess Window下的窗口拖拽与窗口大小控制

nw.js FrameLess Window下的窗口拖拽与窗口大小控制 很多时候,我们觉得系统的Frame框很难看,于是想自定义。 自定义Frame的第一步是在package.config文件中将frame选项设置为false。 { "nam...

zting科技
2017/01/11
0
0
Mac OSX 鼠标键盘事件的监听和模拟

最近完成了 Mac OSX 平台下的远程控制功能,期间找了不少资料,这里做个总结,主要涉及到一下知识点: OSX 的事件机制 OSX/iOS 响应链者链 鼠标事件的监听及模拟(鼠标单击、双击、拖动、滚动...

topws1
2018/10/12
0
0
Android 使用代码实现一个选词(拖拽)填空题

封面 GitHub传送门 1.写在前面 在上一篇文章《Android 使用代码实现一个填空题》中,我们学习了如何实现一个填空题,今天继续接着上一篇文章的节奏,学习一下如何实现一个选词填空题,由于本...

猴亮屏
2017/10/19
0
0
Mac OS X下如何移动文件和文件夹

Mac OS X下如何移动文件和文件夹 常用Windows的朋友都熟悉一个快捷键的组合Ctrl+X剪切,然后Ctrl+V粘贴到别的目录,同时删除原文件或文本,但习惯用键盘快捷键的Mac用户可能发现了,这个剪切...

openthings
2015/03/29
0
0
用过filezilla的高手

filezilla无法将文件直接拖拽到本地桌面,显示无法确定拖放操作的目标。这是由于shell扩展未正确安装,或者您没有把文件拖拽到文件浏览器窗口。 请问大虾们怎么解决?

loover
2012/07/23
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

Redox OS 发布 0.5 版

Redox OS 是一个几乎完全以 Rust 语言编写的通用操作系统及周围生态(例如文件系统、显示服务器及 Rust 版本的 libc)。其遵循微内核架构,在一定程度上兼容于 POSIX。 该项目于日前发布了 ...

linuxCool
30分钟前
0
0
更新上传git/gitee项目时出现密码配置错误(incorrect username or password)的解决办法

1.输入【git remote add origin git地址】 命令时出现incorrect username or password的错误,这是因为之前弹出输入账户和密码时输错了,而且会一直默认错误的账户和密码,因此需要把之前输入...

west_coast
37分钟前
0
0
Jenkins基础入门-1-Jenkins简单介绍和环境安装

如果在做自动化测试的朋友,应该熟悉Jenkins,或者至少使用过。如果一个人没有使用过Jenkins或者hudson,hudson是Jenkins的前身,他还说自己做过自动化测试,只能说,他只不过是在做半自动化...

shzwork
37分钟前
0
0
linux上解压版安装jdk,tomcat

需要的安装包 1.vmware12 2.centos7版本 3.安装完成后需要xshell来连接远程虚拟机,虚拟机保证要联网,网络畅通。 4.xftp用来向linux传输文件用,一般来说xshell和xftp配套使用 5.对应的压缩...

architect刘源源
今天
26
0
使用 spring 的 IOC 解决程序耦合

工厂模式解耦 在实际开发中我们可以把三层的对象都使用配置文件配置起来,当启动服务器应用加载的时候,让一个类中的方法通过读取配置文件,把这些对象创建出来并存起来。在接下来的使用的时...

骚年锦时
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部