swt实现文件图片拖拽上传


一,拖拽得到文件地址,根据地址得到文件

二,拖拽的 swt空间内不必须要有一个可以点击的项目才能实现

例如table内可以放tableitem


以下是代码,table可以换成其他的,拖拽后的处理也可以是爱他的

int operations = DND.DROP_DEFAULT | DND.DROP_COPY;
			DropTarget dropTarget = new DropTarget(table1, operations);
			dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });
			dropTarget.addDropListener(new DropTargetListener() {
				public void dragEnter(DropTargetEvent arg0) {
				}
				public void dragLeave(DropTargetEvent arg0) {
				}
				public void dragOperationChanged(DropTargetEvent arg0) {
					// 这里可以做拖放同时按Ctrl之类的控制键改变操作的处理
				}
				public void dragOver(DropTargetEvent arg0) {
					arg0.detail = DND.DROP_COPY;
					// 这里比较重要,detail原值为DND.DROP_NONE改变detail才能让drop事件进行下去
				}

				public void drop(DropTargetEvent arg0) {
					TableItem item = (TableItem) arg0.item;
					if (item == null) {
						arg0.detail = DND.DROP_NONE;
						return;
					}

					if (FileTransfer.getInstance().isSupportedType(arg0.currentDataType)) {
						String[] files = (String[]) arg0.data;
						if (files != null && files.length > 0) {
							String p=files[0];
							Image image = new Image(Display.getDefault(), p);
							table1.setBackgroundImage(new Image(display, image.getImageData().scaledTo(200, 200)));
							
							text.setText(p);
							System.out.println(p);
						}
					}
				}

				public void dropAccept(DropTargetEvent arg0) {

					// 最后一次取消drop操作的机会
					System.out.println("dragAccept");
				}
			});


################19/12/2007更新################### 新添加/重写的功能: 1. 已实现简单的剪切/复制/粘贴功能(尚不能和外界程序交互) 2. 添加创建新文件功能 3. 添加选择全部/文件/文件功能 4. 增加对创建新文件夹,重命名,删除,粘贴操作的异常处理 5. FileUtil中增加getFileCentent方法,用于读取文本文件内容 6. 重写AboutDialog 7. 重写ExitAction 8. 重写FileUtil中doPaste()方法,显著提高速度,修正拷贝文件时会导致文件不正常的严重Bug 9. 修正其他部分已发现Bug 10. 版本号升级为0.5 尚未实现功能: 1. 与外界程序的交互 2. 拖拽 3. 国际化 4. 输入文件名时对特殊字符的验证 ################17/12/2007更新################### 新添加/重写的功能: 1. 排序功能已加入菜单栏和弹出菜单 2. 重写图标载入方法,已经可以实现图标动态载入和识别 3. 重写TableViewer中tableColumn生成载入方法,已经可以实现tablecolumn的半动态载入和识别 4. 实现动态识别文件类型 5. 进行删除操作时,对删除的文件进行识别 6. 更新添加了一些FileUtil中的方法,并且把这个类的注释写的差不多了 - - 注意: 1. icons文件夹内的文件结构有变化。 2. jar文件没有更新,如果需要打好包的jar文件请等我把功能实现后的那个版本 - - 尚未实现功能: 1. 剪切/复制/粘贴功能 2. 拖拽功能 3. 详尽的注释 4. 异常处理 5. 国际化 ################14/12/2007更新################### 已经实现的基本功能: 1. 树形浏览结构 2. 双击 运行程序/进入下一级菜单目录 3. 返回上一级菜单 4. 重命名 5. 刷新 6. 删除 7. 按文件名/大小/类型/最后修改日期排序 8. 对当前文件夹进行过滤操作 9. 对当前文件夹的简要统计 尚未实现功能: 1. 剪切/复制/粘贴 2. 拖拽 3. 弹出菜单中的排序选项 4. 动态识别文件类型 5. 详尽的注释 已知的Bug: 1. TreeViewer进行目录切换时,TableViewer窗体有时会变成空白 2. 有特殊字符的过滤操作将导致异常 3. 重命名没有考虑特殊字符 4. 有大量文件(几百个以上)的目录会打开的很慢 5. 文件删除失败时没有提示###### 新添加/重写的功能: 1. 已实现简单的剪切/复制/粘贴功能(尚不能和外界程序交互) 2. 添加创建新文件功能 3. 添加选择全部/文件/文件功能 4. 重写AboutDialog 5. 增加对创建新文件夹,重命名,删除,粘贴操作的异常处理 6. 重写ExitAction 7. 修正部分已发现Bug 尚未实现功能: 1. 与外界程序的交互 2. 拖拽 3. 国际化 4. 输入文件名时对特殊字符的验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值