随笔 - 17  文章 - 84  trackbacks - 0
<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

如非特别说明,所有文章均为原创。如需引用,请注明出处
Email:liangtianyu@gmail.com
MSN:terry.liangtianyu@hotmail.com

常用链接

留言簿(4)

随笔分类(12)

随笔档案(17)

最新随笔

搜索

  •  

积分与排名

  • 积分 - 51513
  • 排名 - 960

最新评论

阅读排行榜

评论排行榜

需求:
在浏览器中显示文件列表,每个文件前面有个图标,拖动图标到应用程序,可以直接在应用程序中打开对的文件。

环境:
JDK:6.0
Develop Tools:Eclipse 3.30

备注:
图标用Applet显示,直接拖拽Applet就可以实现此功能

代码:
 1public class GragUtil extends Applet implements DropTargetListener, DragSourceListener,
 2        DragGestureListener, Transferable {
 3    String path;
 4    DropTarget dropTarget=new DropTarget(this,this);
 5    DragSource dragSource=DragSource.getDefaultDragSource();
 6    
 7    public String getPath(){
 8        return this.path;
 9    }

10    
11    public void setPath(String path){
12        this.path=path;
13    }

14
15    public GragUtil() {
16        dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY_OR_MOVE,this);
17    }

18
19    public void dragEnter(DropTargetDragEvent dropTargetDragEvent) {
20        dropTargetDragEvent.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
21    }

22
23    public void dragExit(DropTargetEvent dropTargetEvent) {
24        // TODO Auto-generated method stub
25
26    }

27
28    public void dragOver(DropTargetDragEvent dropTargetDragEvent) {
29        // TODO Auto-generated method stub
30
31    }

32
33    public void drop(DropTargetDropEvent dropTargetDropEvent) {
34        
35    }

36
37    public void dropActionChanged(DropTargetDragEvent arg0) {
38        // TODO Auto-generated method stub
39
40    }

41
42    public void dragDropEnd(DragSourceDropEvent arg0) {
43        // TODO Auto-generated method stub
44
45    }

46
47    public void dragEnter(DragSourceDragEvent arg0) {
48        // TODO Auto-generated method stub
49
50    }

51
52    public void dragExit(DragSourceEvent arg0) {
53        // TODO Auto-generated method stub
54
55    }

56
57    public void dragOver(DragSourceDragEvent arg0) {
58        // TODO Auto-generated method stub
59
60    }

61
62    public void dropActionChanged(DragSourceDragEvent arg0) {
63        // TODO Auto-generated method stub
64
65    }

66
67    public void dragGestureRecognized(DragGestureEvent dragGestureEvent) {
68        dragGestureEvent.startDrag(DragSource.DefaultCopyDrop,this,this);
69    }

70
71    public Object getTransferData(DataFlavor flavor)
72            throws UnsupportedFlavorException, IOException {
73        if(flavor==DataFlavor.javaFileListFlavor){
74            ArrayList<File> files=new ArrayList<File>();
75            files.add(new File(this.path));
76            return files;
77        }

78        else{
79            throw new UnsupportedFlavorException(flavor);
80        }

81    }

82
83    public DataFlavor[] getTransferDataFlavors() {
84        return new DataFlavor[]{DataFlavor.javaFileListFlavor};
85    }

86
87    public boolean isDataFlavorSupported(DataFlavor flavor) {
88        return flavor==DataFlavor.javaFileListFlavor;
89    }

90
91}
posted on 2007-08-30 11:52 Terry Liang 阅读(973) 评论(3)  编辑  收藏

FeedBack:
# re: 用Applet实现基于Browser的文件拖动 2007-08-30 12:37 JAVA面试题
路过,收藏  回复  更多评论
  
# re: 用Applet实现基于Browser的文件拖动 2007-08-30 12:54 交口称赞
记得以前写applet批量上传的时候,要做证书才能访问本地目录

这个要么  回复  更多评论
  
# re: 用Applet实现基于Browser的文件拖动 2007-08-30 14:11 Terry Liang
@交口称赞
需要
当然也可以直接修改%JAVA_HOME%\lib\security\java.policy文件,加上:
permission java.security.AllPermission
也可以
网上解决诸如此类问题的资料很多  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: