Hi,
ich habe ein Problem mit Drag and Drop unter Linux... Folgender Code funktioniert unter Windows einwandfrei und führt zur Ausgabe des Dateipfades aller Dateien, die per Drag and Drop in das Fenster gezogen wurden:
Das Problem ist: Unter Linux (Ubuntu) scheint das JavaFileListFlavor nicht unterstützt zu werden, wenn ich vom Nautilus Dateibrowser (Standard unter Ubuntu) Dateien in das Fenster ziehe. Muss ich nun unter Linux darauf verzichten oder komme ich doch noch möglichst plattformneutral an meine Dateiliste?
ich habe ein Problem mit Drag and Drop unter Linux... Folgender Code funktioniert unter Windows einwandfrei und führt zur Ausgabe des Dateipfades aller Dateien, die per Drag and Drop in das Fenster gezogen wurden:
Code:
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.io.*;
import java.util.*;
import javax.swing.JFrame;
public class DnDJFrame extends JFrame
{
public DnDJFrame()
{
super("Drag n Drop Test");
setSize(160, 120);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
DropTarget dropTarget = new DropTarget(this,
new DropTargetAdapter()
{
public void drop(DropTargetDropEvent dtde)
{
int action = dtde.getDropAction();
dtde.acceptDrop(action);
if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
{
try
{
Transferable t = dtde.getTransferable();
List<File> list = (List<File>) t.getTransferData(DataFlavor.javaFileListFlavor);
for (File item : list)
System.out.println(item);
}
catch (IOException e)
{
e.printStackTrace();
}
catch (UnsupportedFlavorException e)
{
e.printStackTrace();
}
dtde.dropComplete(true);
}
}
}
);
setDropTarget(dropTarget);
}
public static void main(String[] args)
{
new DnDJFrame().setVisible(true);
}
}
Das Problem ist: Unter Linux (Ubuntu) scheint das JavaFileListFlavor nicht unterstützt zu werden, wenn ich vom Nautilus Dateibrowser (Standard unter Ubuntu) Dateien in das Fenster ziehe. Muss ich nun unter Linux darauf verzichten oder komme ich doch noch möglichst plattformneutral an meine Dateiliste?