Java 拖拽文件到文本框

简介:

Java中如何把文件拖拽到文本框呢?

先看一个例子:

 

 

 

核心代码:

Java代码   收藏代码
  1. /*** 
  2.      * 拖拽文件到文本框 
  3.      * @param component 
  4.      */  
  5.     public void drag(final Component component)// 定义的拖拽方法  
  6.     {  
  7.         // panel表示要接受拖拽的控件  
  8.         new DropTarget(component, DnDConstants.ACTION_COPY_OR_MOVE,  
  9.                 new DropTargetAdapter() {  
  10.                     @Override  
  11.                     public void drop(DropTargetDropEvent dtde)// 重写适配器的drop方法  
  12.                     {  
  13.                         try {  
  14.                             if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))// 如果拖入的文件格式受支持  
  15.                             {  
  16.                                 dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);// 接收拖拽来的数据  
  17.                                 List<File> list = (List<File>) (dtde  
  18.                                         .getTransferable()  
  19.                                         .getTransferData(DataFlavor.javaFileListFlavor));  
  20. //                              String temp = "";  
  21. //                              for (File file : list)  
  22. //                                  temp += file.getAbsolutePath() + ";\n";  
  23. //                              JOptionPane.showMessageDialog(null, temp);  
  24.                                 dragResponse(list,component);  
  25.                                 dtde.dropComplete(true);// 指示拖拽操作已完成  
  26.                             } else {  
  27.                                 dtde.rejectDrop();// 否则拒绝拖拽来的数据  
  28.                             }  
  29.                         } catch (Exception e) {  
  30.                             e.printStackTrace();  
  31.                         }  
  32.                     }  
  33.                 });  
  34.     }  
  35.   
  36. /*** 
  37.      * 默认实现 
  38.      */  
  39.     @Override  
  40.     protected void dragResponse(List<File> list,Component component) {  
  41.         String filePath=list.get(0).getAbsolutePath();  
  42.         if(component instanceof  JTextComponent){  
  43.             JTextComponent text=(JTextComponent)component;  
  44.             //把文本框的内容设置为拖拽文件的全路径  
  45.             text.setText(filePath);  
  46.         }  
  47.     }  

 调用:

 

 

项目采用maven 构建,项目结构:

相关文章
|
29天前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
30 1
|
1月前
|
Java
java中替换文件内容
java中替换文件内容
14 1
|
1月前
|
Java API
Java中文件与输入输出
Java中文件与输入输出
|
1月前
|
Java
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
10 0
|
1月前
|
Java
java程序导出堆文件
java程序导出堆文件
|
3天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
1月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
92 3
|
1月前
|
Java
使用java将字符串写入到指定的文件中
使用java将字符串写入到指定的文件中
11 0
|
1月前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
1月前
|
Java
Java文件类
Java文件类
7 0
Java文件类