| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1255 人关注过本帖
标题:如何用鼠标把文件或文件夹拖到控件里,然后捕捉文件信息
只看楼主 加入收藏
Kiss_Anna
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-5-21
收藏
 问题点数:0 回复次数:4 
如何用鼠标把文件或文件夹拖到控件里,然后捕捉文件信息
请问能不能有办法实现这样的功能:用鼠标把一个文件或文件夹拖到一个控件上面,然后这个控件显示文件或文件夹的信息
搜索更多相关主题的帖子: 鼠标 控件 文件 
2006-12-24 13:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

用JAVA搞这个不好办


可惜不是你,陪我到最后
2006-12-24 15:39
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 

呵呵,也不是很不好搞哦
下面是个简单的示例程序,功能虽不强,足以说明问题了.

程序代码:

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.io.*;
import java.util.*;
import javax.swing.*;

/**
*一个简单的拖放示例程序
*将文件或文件夹拖放到文本区然后放下,就会显示这些文件的一些信息
*@author Eastsun
*@version .1 2006/12/24
*/
public class ShowMsg{
public static void main(String[] args){
new DropTargetFrame();
}
}

class DropTargetFrame extends JFrame{
public DropTargetFrame(){
super(\"文件信息\");

JTextArea textArea = new JTextArea(\"@@@@@@@@@@将文件拖放到编辑区@@@@@@@@@@@@\n By Eastsun\n\");
JScrollPane scrollPane =new JScrollPane(textArea);
textArea.setLineWrap(true);
textArea.setEditable(false);
add(scrollPane);
new DropTarget(textArea, new TextDropTargetListener(textArea));
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 300;
}

class TextDropTargetListener extends DropTargetAdapter{

public TextDropTargetListener(JTextArea aTextArea){
textArea = aTextArea;
}
public void drop(DropTargetDropEvent event){

event.acceptDrop(DnDConstants.ACTION_COPY);
Transferable transferable = event.getTransferable();

DataFlavor[] flavors = transferable.getTransferDataFlavors();
for (int i = 0; i < flavors.length; i++){
DataFlavor d = flavors[i];

try{
if (d.equals(DataFlavor.javaFileListFlavor)){
java.util.List<File> fileList
= (java.util.List<File>) transferable.getTransferData(d);
for (File f : fileList){
textArea.append(\"文件名: \"+f + \"\n\");
textArea.append(\"文件属性: \");
String value=null;
if(f.isFile())
value =\"文件, 文件大小: \"+f.length()+\"bytes\";
else if(f.isDirectory())
value =\"文件夹\";
else
value =\"未知\";
textArea.append(value+\"\n\");
}
}
}
catch (Exception e){
textArea.append(e + \"\n\");
}
}
textArea.append(\"\n\");
event.dropComplete(true);
}
private JTextArea textArea;
}




[此贴子已经被作者于2006-12-24 16:26:56编辑过]


My BlogClick Me
2006-12-24 16:23
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 


可惜不是你,陪我到最后
2006-12-24 16:35
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
收藏
得分:0 


Eastsun 厉害啊 学习了!!

[此贴子已经被作者于2006-12-24 17:05:21编辑过]


2006-12-24 17:05
快速回复:如何用鼠标把文件或文件夹拖到控件里,然后捕捉文件信息
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021738 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved