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

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

1.获取拖入的文件

1         2 //build drag 3 txtAreaChangePane.setOnDragOver(new EventHandler<DragEvent>() { //node添加拖入文件事件 4 public void handle(DragEvent event) { 5 Dragboard dragboard = event.getDragboard();  6 if (dragboard.hasFiles()) { 7 File file = dragboard.getFiles().get(0); 8 if (file.getAbsolutePath().endsWith(".java")) { //用来过滤拖入类型 9 event.acceptTransferModes(TransferMode.COPY);//接受拖入文件 10 } 11 } 12 13 } 14 }); 15 txtAreaChangePane.setOnDragDropped(new EventHandler<DragEvent>() { //拖入后松开鼠标触发的事件 16 public void handle(DragEvent event) { 17 // get drag enter file 18 Dragboard dragboard = event.getDragboard(); 19 if (event.isAccepted()) { 20 File file = dragboard.getFiles().get(0); //获取拖入的文件 21 22 } 23 } 24 });

2.拖出生成文件

1//drag out  2   ClipboardContent content = new ClipboardContent(); //用来放拖出的内容 3 txtAreaCodeSpace.setOnDragDetected(new EventHandler<MouseEvent>() { //在node里面拖动事件 4 public void handle(MouseEvent event) { 5 6 Dragboard dragboard = txtAreaCodeSpace.startDragAndDrop(TransferMode.ANY); //开启拖出事件 7 content.clear(); 8 File file = new File(txtClassName.getText() + ".java"); //创建拖出的文件 9 OutputStreamWriter outputString = null; 10 try { 11 file.createNewFile(); 12 outputString = new OutputStreamWriter(new FileOutputStream(file)); 13 outputString.write(txtAreaCodeSpace.getText()); 14 } catch (IOException e) { 15 e.printStackTrace(); 16 } finally { 17 try { 18 outputString.close(); 19 } catch (IOException e) { 20 e.printStackTrace(); 21 } 22 outputString = null; 23 } 24 List<File> files = new ArrayList<File>(); 25 files.add(file); 26 content.putFiles(files); //将文件保存到面板里面 27 dragboard.setContent(content); //放入拖出内容 28 29 } 30 });

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

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Node.js学习笔记

什么是Node.js文件?Node.js文件包含将在特定事件上执行的任务一个典型的事件是有人试图访问服务器上的端口Node.js文件必须在服务器上启动才能生效Node.js文件的扩展名为“.js”Node.js文件应当如何执行推荐使用各种类型的编译器生成一个空白的nodedemo.js文件,在文件中输入下面的内容:varhttprequi

JavaFX打包工具(javafxpackager)

首先创建一个JavaFX文件,HelloWorldpackage test;import javafx.application.Application;import javafx.event.ActionEvent;import javafx.event.EventHandler;impor

Ceph分布式存储部署过程

前言:  环境介绍:此次部署系统为Cenots7MON、OSD10.110.180.112AdminMON、OSD10.110.180.113Node1MON、OSD10.110.180.114Node2Ceph文件目录部署过程此部署过程是采用文件目录方式挂在激活OSD的方式部署Ceph集群。1.系统关闭

JAVA获取txt文件内容

  JAVA读取txt文件内容  通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文件字符编码即可。1importjava.io.BufferedReader;2importjava.io.File;3importjava.io

thinkphp5 不用主机配置URL重写

可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:\Apache\httpd.conf配置文件中加载了mod\_rewrite.so模块AllowOverrideNone将None改为All把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下<IfModulemod