您的位置:首页 > 编程语言 > Java开发

JAVA拖拽选择文件

2016-01-23 15:03 363 查看
最简单的选择文件的方式是使用文件选择框,但是这种方式在操作起来很麻烦,很多人在操作的时候喜欢直接使用鼠标拖拽,今天就为大家演示一下JAVA中如何实现直接用鼠标拖拽文件选择。

import java.awt.datatransfer.DataFlavor;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetAdapter;
import java.awt.dnd.DropTargetDropEvent;
import java.io.File;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

/**
* 文件拖拽选择示例
*
* @author jianggujin
*
*/
@SuppressWarnings("serial")
public class DragDemo extends JFrame
{
public DragDemo()
{
super("DragDemo");

final JTextArea area = new JTextArea();
area.setLineWrap(true);
add(new JScrollPane(area));

new DropTarget(area, DnDConstants.ACTION_COPY_OR_MOVE,
new DropTargetAdapter()
{
@Override
public void drop(DropTargetDropEvent dtde)
{
try
{
// 如果拖入的文件格式受支持
if (dtde
.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
{
// 接收拖拽来的数据
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
@SuppressWarnings("unchecked")
List<File> list = (List<File>) (dtde.getTransferable()
.getTransferData(DataFlavor.javaFileListFlavor));
area.setText("");
for (File file : list)
{
area.append(file.getAbsolutePath());
area.append("\r\n");
}
// 指示拖拽操作已完成
dtde.dropComplete(true);
}
else
{
// 拒绝拖拽来的数据
dtde.rejectDrop();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
});

setSize(300, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args)
{
new DragDemo();
}
}


运行效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 文件选择 拖拽