swt实现文件图片拖拽上传

您所在的位置:网站首页 swt界面 swt实现文件图片拖拽上传

swt实现文件图片拖拽上传

#swt实现文件图片拖拽上传| 来源: 网络整理| 查看: 265

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

二,拖拽的 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"); } });



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3