# JList und Drag&Drop von Dateien



## EinGast (17. Dez 2007)

Hallo 
Ich würde gerne eine kleine GUI mit einer JList erstellen, in die man Dateien vom Desktop "reinziehen" kann. Also mit Drag&Drop. Wenn die Dateien in die JList gezogen worden sind, soll jeder Eintrag in der JList aus dem vollständigen Pfad der Dateien bestehen.
Ich hab also mal ein bisschen gegooglet und habe auch einige Tutorials zum Drag&Drop und einer Klasse "Data Transfer" gefunden, wo aber immer nur gezeigt wird, wie man z.B. Texteinträge von einer Liste in die andere verschieben kann, aber nie für Dateien.
Hat jemand von euch ein Tutorial ein Howto oder etwas ähnliches, wo das ganze beschrieben wird?
Ich würde mich wirklich sehr freuen.


----------



## Wildcard (17. Dez 2007)

Bitte sehr:

```
public class FileDemo extends JFrame {

	private DefaultListModel model;
	
	public FileDemo() {
		model = new DefaultListModel();
		JList list = new JList(model);
		setLayout(new GridLayout(1,1));
		add(list);
		DropTarget target = new DropTarget(list, new DropTargetAdapter() {
		
			public void drop(DropTargetDropEvent dtde) {
				if(dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
				{
					dtde.acceptDrop(dtde.getDropAction());
					try {
						List<File> list = (List<File>) dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor);
						for (File file : list) {
							model.addElement(file);
						}
					} catch (UnsupportedFlavorException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
		
			}
		
		});
		list.setDropTarget(target);
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		JFrame frame = new FileDemo();
		frame.setSize(300, 500);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		frame.setVisible(true);

	}

}
```


----------

