swt实现文件图片拖拽上传 |
您所在的位置:网站首页 › swt界面 › 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"); } }); |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |