Java 拖拽文件到文本框

本文介绍了一种在Java中实现将文件拖拽到文本框的方法。通过使用`DropTarget`类及其适配器,文章详细展示了如何检测并接收拖拽事件,以及如何将拖拽的文件路径显示在文本框内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

先看一个例子:

 

 

 

核心代码:

/***
	 * 拖拽文件到文本框
	 * @param component
	 */
	public void drag(final Component component)// 定义的拖拽方法
	{
		// panel表示要接受拖拽的控件
		new DropTarget(component, DnDConstants.ACTION_COPY_OR_MOVE,
				new DropTargetAdapter() {
					@Override
					public void drop(DropTargetDropEvent dtde)// 重写适配器的drop方法
					{
						try {
							if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))// 如果拖入的文件格式受支持
							{
								dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);// 接收拖拽来的数据
								List<File> list = (List<File>) (dtde
										.getTransferable()
										.getTransferData(DataFlavor.javaFileListFlavor));
//								String temp = "";
//								for (File file : list)
//									temp += file.getAbsolutePath() + ";\n";
//								JOptionPane.showMessageDialog(null, temp);
								dragResponse(list,component);
								dtde.dropComplete(true);// 指示拖拽操作已完成
							} else {
								dtde.rejectDrop();// 否则拒绝拖拽来的数据
							}
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});
	}

/***
	 * 默认实现
	 */
	@Override
	protected void dragResponse(List<File> list,Component component) {
		String filePath=list.get(0).getAbsolutePath();
		if(component instanceof  JTextComponent){
			JTextComponent text=(JTextComponent)component;
			//把文本框的内容设置为拖拽文件的全路径
			text.setText(filePath);
		}
	}

 调用:

 

 

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

 项目源代码:见附件(divideFile.zip)

项目依赖的jar包见附件(io0007-find_progess-0.0.8.5-SNAPSHOT.jar)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值