java - 如何在 Swing 中使用拖放来获取文件路径?

标签 java swing drag-and-drop

我的 Swing 应用程序中有一个 JTextField,它保存选择要使用的文件的文件路径。目前我有一个用于填充此值的 JFileChooser 。但是,我想添加用户将文件拖放到此 JTextField 上并将该文件的文件路径放入 JTextField 中的功能而不是总是使用 JFileChooser

如何做到这一点?

最佳答案

如果您不想花太多时间研究这个相对复杂的主题,并且您使用的是 Java 7 或更高版本,这里有一个快速示例,说明如何使用 JTextArea 接受拖放的文件> 作为放置目标:

JTextArea myPanel = new JTextArea();
myPanel.setDropTarget(new DropTarget() {
    public synchronized void drop(DropTargetDropEvent evt) {
        try {
            evt.acceptDrop(DnDConstants.ACTION_COPY);
            List<File> droppedFiles = (List<File>)
                evt.getTransferable().getTransferData(DataFlavor.javaFileListFlavor);
            for (File file : droppedFiles) {
                // process files
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
});

关于java - 如何在 Swing 中使用拖放来获取文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7107366/

相关文章:

java - GridBag 面板不占用所有空间

java - 拖放惯性运动

javascript - 如何在html拖放上设置自定义数据

delphi - 如何将文本字符串及其超链接从 HTML 页面拖到 TEdit

java - Netty 是可写的()

java - 修改IntelliJ中Java代码编辑器生成 `toString`方法使用的模板

java - 从 appfog 提供静态文件

java - 如何区分同一个整数对象?

java - 是否可以在清除 Jtable(运行时)之前删除 ListSelectionListener?

Java 2D API : Null Pointer Exception