java拖放 - 列表不带参数

时间:2013-04-01 11:37:37

标签: java swing list drag-and-drop

我正在尝试创建一个简单的应用程序,它使用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);
            }
        }
    });

1 个答案:

答案 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.Listjava.util.List<E>

java.awt.List myGuiList = new java.awt.List();
java.util.List<File> myFileList = new ArrayList<File>();