【发布时间】:2014-11-20 21:36:02
【问题描述】:
我有一个问题,不知道从哪里开始。我想将文件(仅 .zip)从 Windows 中的任何位置放入 Swing 应用程序(放入 JList)。我怎样才能做到这一点?
在列表中我将只显示绝对路径,文件可能在数组或类似的东西中。 Java 1.6
【问题讨论】:
标签: java swing drag-and-drop jlist
我有一个问题,不知道从哪里开始。我想将文件(仅 .zip)从 Windows 中的任何位置放入 Swing 应用程序(放入 JList)。我怎样才能做到这一点?
在列表中我将只显示绝对路径,文件可能在数组或类似的东西中。 Java 1.6
【问题讨论】:
标签: java swing drag-and-drop jlist
您缺少的关键字是TransferSupport
https://docs.oracle.com/javase/tutorial/uiswing/dnd/transfersupport.html
https://docs.oracle.com/javase/tutorial/uiswing/dnd/dropmodes.html
但基本上你必须创建一个TransferHandler,它具有通过拖放导入数据的方法。但是您必须将数据转换为您想要的任何内容(在您的情况下获取文件(可能是DataFlavor#javaFileListFlavor)并将它们转换为路径
https://docs.oracle.com/javase/tutorial/uiswing/dnd/dropmodedemo.html
【讨论】:
人们可以尝试自己实现,但正如 Hovercraft Full Of Eels 的评论所提到的,有许多注意事项需要注意。
我个人使用在这里找到的代码:http://iharder.sourceforge.net/current/java/filedrop/
它是一个简单的java 类FileDrop,它处理所有可能发生的特殊情况,并为处理丢弃的文件提供了一个简单的接口。该课程是公共领域,因此可以免费用于任何目的。
【讨论】: