支持拖拽文件到 JTextArea。
package com.lesten.tools; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.dnd.DropTargetEvent; import java.awt.dnd.DropTargetListener; import java.io.File; import java.io.IOException; import java.util.List; import javax.swing.JTextArea; public class SupportDragTextArea extends JTextArea implements DropTargetListener { private static final long serialVersionUID = 7247130270544835594L; public SupportDragTextArea() { } public void dragEnter(DropTargetDragEvent dtde) { } public void dragOver(DropTargetDragEvent dtde) { } public void dropActionChanged(DropTargetDragEvent dtde) { } public void dragExit(DropTargetEvent dtde) { } public void drop(DropTargetDropEvent dtde) { this.setText(""); if(dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)){ dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); try { Transferable tr = dtde.getTransferable(); Object obj = tr.getTransferData(DataFlavor.javaFileListFlavor); @SuppressWarnings("unchecked") List<File> files = (List<File>)obj; for(int i = 0; i < files.size(); i++){ append(files.get(i).getAbsolutePath()); } } catch (UnsupportedFlavorException ex) { } catch (IOException ex) { } } else if (dtde.isDataFlavorSupported(DataFlavor.stringFlavor) ) { dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); try { Transferable tr = dtde.getTransferable(); String str=(String) tr.getTransferData(DataFlavor.stringFlavor); append(str); } catch (UnsupportedFlavorException ex) { } catch (IOException ex) { } } } }
支持拖拽的 JTextArea. 支持 mac 和 windows 平台。 走过几个坑,记录下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现