javafx实现拖人文件到node,将node里面的内容为文件保存

最近研究了下javafx客户端人性化方面的,拖来拖去什么的最爱了,接下来给大家讲解下javafx怎么获取拖入的文件和将node里面的内容拖出为文件

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); //放入拖出内容

			}
		});

就是这么简单,javafx封装的还是挺多的。

时间: 2024-10-19 01:35:27

javafx实现拖人文件到node,将node里面的内容为文件保存的相关文章

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: 1 var fs = require('fs'); 2 var tel = [ 3 "1/2/4/6/a.tpl.html", 4 "1/2/4/7/9/c.tpl.html", 5 "1/3/5/8/b.tpl.html"]; 6 var demo = function (mulu)

node.js的fs核心模块读写文件操作 -----由浅入深

node.js 里fs模块 常用的功能 实现文件的读写 目录的操作 - 同步和异步共存 ,有异步不用同步 - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFile方法- 文件大分流读取,stream - 引入fs模块 - let fs=require('fs') 同步读取文件 -fs.readFileSync('路径',utf8); let result=fs.readFileSync('./1.txt','utf8'); 异步读取文件,用参数err捕获错

在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在"D:\java"文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 myPackage 包中创建一个YMD类,该类具有计算今年的年份.可以输出一个带有年月日的字符串的功能.设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名.年龄.出生日期.程序使用YMD的方法来计算年龄. 主要考包的运用 用到java.util.Calendar

node.js 操作excel 表格与XML文件常用的npm

在日常工作中会经常用到把一些excel表格文件转化为json,xml,js等格式的文件,下面就是我在日常中用到的这些npm. 1.node-xlsx: node-xlsx可以把excel文件转化为上面说所的几种文件格式,常用方式可以查看github的源码与实例:node-xlsx 在操作文件中直接引用 var xlsx = require("node-xlsx"); 读取excel var list = xlsx.parse("./excel/" + excelNa

Node.js学习笔记(5)--文件简单操作

说明(2017-5-3 11:53:45): 1. foo.js 1 var fs = require("fs"); 2 var documents = []; 3 fs.readdir("./段虹",function(err,files){ 4 5 for(let i = 0; i < files.length; i++){ 6 // var filename = files[i]; 7 fs.stat("./段虹/" + files[i

[Node.js]node中的require到底是怎样工作的

关于require 但凡使用过node.js/io.js,必定都会用到require这个函数来引用其它模块(自己写的或他人的).但很多人(包括本人)都没有把node中关于require(在文档中modules这一部份)介绍认真看过一遍. 这里先介绍一下大家可能都已熟知的情况: 文件加载 node中在使用require加载文件时,会尝试在引用文件名不存在的情况下,依次加上.js..node..json这三个后缀名来试错.注意,这里指的是引用文件名对应文件不存在的情况下. 例如,当你在代码中使用re

PDF文件加密有什么方法?如何给PDF文件加密

平时如果处理到一些文件的时候,觉得它比较重要就会给这个文件设置密码,就向给手机设置密码一样,如果需要查看的话就需要输入密码才可以,其实原理都是差不多.就拿在处理到PDF文件的时候,需要给它加密,我们该如何进行操作呢?那下面不妨看看小编的操作方法.1:第一步我们可以新建一个新的文件夹,将所要加密的PDF文件添加进去,当然这一步大家可以不用去操作,小编这样是为了后面方便后面的操作.2:然后可以借助到第三方软件:PDF转换器这款软件.进入到百度浏览器或应用商店进行搜索安装,安装的具体操作在这里就不用小

dll文件32位64位检测工具以及Windows文件夹SysWow64的坑(很详细,还有自动动手编程探测dll)

阅读目录 dll文件不匹配导致数据库无法启动 究竟是System32还是SysWow64 区分dll文件32位64位的程序让我倍感迷惑 再次判断究竟是System32还是SysWow64——意想不到的坑 Program Files (x86)与Program Files 32位程序真的需要访问System32吗 32位程序与64位程序的区别总结 参考资料 自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program

js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' + id; if(window.ActiveXObject) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '&qu