拖拽文件获取文件路径
来源:互联网 发布:江西百川网络托管 编辑:程序博客网 时间:2024/05/22 23:20
该文章转载自:
拖曳文件获取文件路径
//拖拽获取文件路径package test;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.dnd.DnDConstants;import java.awt.dnd.DropTarget;import java.awt.dnd.DropTargetDragEvent;import java.awt.dnd.DropTargetDropEvent;import java.awt.dnd.DropTargetEvent;import java.awt.dnd.DropTargetListener;import java.io.File;import java.util.List;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextArea;/** * This is a test class to test drag and drop behavior. Drop items into the text * area to see the MIME types of the drop target. */public class Demo2 { public static void main(String[] args) { JFrame frame = new DropTargetFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}/** * This frame contains a text area that is a simple drop target. */class DropTargetFrame extends JFrame { public DropTargetFrame() { setTitle("DropTarget"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); JTextArea textArea = new JTextArea("Drop items into this text area.\n"); new DropTarget(textArea, new TextDropTargetListener(textArea)); add(new JScrollPane(textArea), "Center"); } private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 300;}/** * This listener displays the properties of a dropped object. */class TextDropTargetListener implements DropTargetListener { /** * Constructs a listener. * * @param aTextArea * the text area in which to display the properties of the * dropped object. */ public TextDropTargetListener(JTextArea aTextArea) { textArea = aTextArea; } public void dragEnter(DropTargetDragEvent event) { int a = event.getDropAction(); if ((a & DnDConstants.ACTION_COPY) != 0) textArea.append("ACTION_COPY\n"); if ((a & DnDConstants.ACTION_MOVE) != 0) textArea.append("ACTION_MOVE\n"); if ((a & DnDConstants.ACTION_LINK) != 0) textArea.append("ACTION_LINK\n"); if (!isDragAcceptable(event)) { event.rejectDrag(); return; } } public void dragExit(DropTargetEvent event) { } public void dragOver(DropTargetDragEvent event) { // you can provide visual feedback here } public void dropActionChanged(DropTargetDragEvent event) { if (!isDragAcceptable(event)) { event.rejectDrag(); return; } } public void drop(DropTargetDropEvent event) { if (!isDropAcceptable(event)) { //拒绝 Drop。 event.rejectDrop(); return; } 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]; textArea.append("MIME type=" + d.getMimeType() + "\n"); try { if (d.equals(DataFlavor.javaFileListFlavor)) { List<File> fileList = (List<File>) transferable.getTransferData(d); for (File f : fileList) { textArea.append(f + "\n");// System.out.println("是个文件夹"); } } else if (d.equals(DataFlavor.stringFlavor)) { String s = (String) transferable.getTransferData(d); textArea.append(s + "\n"); } } catch (Exception e) { textArea.append(e + "\n"); } } textArea.append("\n"); event.dropComplete(true); } public boolean isDragAcceptable(DropTargetDragEvent event) { // usually, you check the available data flavors here // in this program, we accept all flavors return (event.getDropAction() & DnDConstants.ACTION_COPY_OR_MOVE) != 0; } public boolean isDropAcceptable(DropTargetDropEvent event) { // usually, you check the available data flavors here // in this program, we accept all flavors return (event.getDropAction() & DnDConstants.ACTION_COPY_OR_MOVE) != 0; } private JTextArea textArea;}
- 拖拽文件获取文件路径
- 获取Java文件路径
- 获取文件路径方法
- C#获取文件路径
- C#获取文件路径
- 获取文件当前路径
- C#获取文件路径
- 获取当前文件路径
- java 获取文件路径
- c# 获取文件路径
- java获取文件路径
- java 获取文件路径
- c#获取文件路径
- 获取文件路径
- 获取运行文件路径
- 获取文件路径
- jsp 获取文件路径
- NSBundle--获取文件路径
- 基于python的单位正整数四则运算表达式求值
- iOS 扩展机制category与associative
- Annotation
- 背包笔记-含0/1背包问题、完全背包问题、多重背包问题、二维背包问题、分组背包问题
- ANT简明教程[转载]
- 拖拽文件获取文件路径
- android.uid.system下解决sdcard读写问题
- MessageBox shellcode
- 程序员学英语三部曲[转]
- 32位cpu寻址小结
- Eclipse Plug-in 通过PropertTest设置菜单权限
- DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移植
- 使用JSP、servlet和ajax实现无刷新获取验证码
- ping 的实现