我正在尝试创建一个简单的应用程序,它使用DnD来获取文件路径。我发现here实际上是同一件事,我想用它。但是我得到了一个错误 - 典型列表不带参数。当我尝试DnD时,如果它有效,我得到肯定答案,但我不知道任何其他可能性,如何获取文件路径。这是我用的代码:
jTextField8.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 : droppeFiles) {
jTextArea1.append("Drag & Drop OK");
}
} catch (UnsupportedFlavorException ex) {
Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
答案 0 :(得分:1)
检查您的进口。
您可能正在使用java.awt.List
而不是java.util.List<E>
。 java.awt.List
是非通用的GUI组件(即,它不接受类型参数),而java.awt.List<E>
是通用数据结构。
如果您故意使用java.awt.List
用于GUI,请记住它已被弃用(或至少被弃用)作为原始AWT的一部分;考虑切换到javax.swing.JList
。
如果您绝对必须在同一个文件中使用java.awt.List
和java.util.List<E>
:
java.awt.List myGuiList = new java.awt.List();
java.util.List<File> myFileList = new ArrayList<File>();