2016-04-06 19 views
1

Bir Sürükle ve BırakJTable kullanarak Salıncak Drag and Drop Dosyalar

public void drop(DropTargetDropEvent dtde){ 
      dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); 
      Transferable t = dtde.getTransferable(); 
      try { 
       List fileList = (List)t.getTransferData(DataFlavor.javaFileListFlavor); 
       File f = (File)fileList; 
       addDnDFile(fileList); 
      } catch (UnsupportedFlavorException ex) { 
      } catch (IOException ex) { 
      } 

     } 

Şu an itibariyle herhangi bir olası anlamaya görünüyor olamaz verir masaya File uygulayan bir MusicPlayer GUI oluşturuyorsam Dosyayı musicplayer'ıma ekleyen addDnDFile yöntemimi kullanabilmek için bir Listeyi bir Dosyaya dönüştürmenin yolu.

+0

Daha iyi yardım için, daha önce bir [MCVE] veya [Kısa, Kendini İçeren, Doğru Örnek] (http://www.sscce.org/) gönderin. –

+0

'} yakalamak (UnsupportedFlavorException ex) { } catch (IOException ex) { }' İstisna çıktısını dikkate almayın. –

+0

'için (Object o: fileList) {' ... sonra '' ın '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'ı'''' görmek için kontrol edin. 13639804/sürükle ve bırak-files-den-os-içine-jtable-java/13640115 # 13640115) – MadProgrammer

cevap

2

bir List bir List ait olduğunu, belli ki bir File değil File s

Maalesef generics var önce bu vardı;), ama temelde, sen List üzerinde yineleme ve her girişin aslında olup olmadığını kontrol etmek istiyorum bir çalıştırılabilir Örneğin örnek

@Override 
public synchronized void drop(DropTargetDropEvent dtde) { 
    if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { 
     dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); 
     Transferable t = dtde.getTransferable(); 
     List fileList = null; 
     try { 
      fileList = (List) t.getTransferData(DataFlavor.javaFileListFlavor); 
      if (fileList != null && fileList.size() > 0) { 
       for (Object value : fileList) { 
        if (value instanceof File) { 
         File f = (File) value; 
         if (row < 0) { 
          model.addRow(new Object[]{f.getAbsolutePath(), "", f.length(), "", ""}); 
         } else { 
          model.insertRow(row, new Object[]{f.getAbsolutePath(), "", f.length(), "", ""}); 
          row++; 
         } 
        } 
       } 
      } 
     } catch (UnsupportedFlavorException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } else { 
     dtde.rejectDrop(); 
    } 
} 

için ne istersen şekilde onunla bir File ve anlaşma, sen drag and drop files from OS into JTable java

kontrol edebilirsiniz 0