您的位置:首页 > Web前端 > Node.js

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

2014-11-10 00:00 477 查看
摘要: 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封装的还是挺多的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javafx 拖拽 java drag