Tach
Ich habe in einem JTree eine Drag and Drop Methode eingebaut. Die funktioniert auch wunderbar. Nur sollen sich die Dateien auf der Festplatte ebenfalls verschieben. Allerdings geben mir die zugehörigen Pfade der Dateien aus dem JTree immer solche [C:\, bin, boot.ini] aus. Damit kann ich ja nicht anfangen wenn ich die Dateien über Files verschieben will.
Habt ihr ne Idee wie ich das bewerkstelligen könnte?
relevanter Code:
Ich habe versucht die Trennungen der Pfade [ , ] mit einem Slash zu ersetzen. Das klappt erstmal recht gut. Allerdings machen mir die eckigen Klammern noch Probleme :bahnhof:
Ich habe in einem JTree eine Drag and Drop Methode eingebaut. Die funktioniert auch wunderbar. Nur sollen sich die Dateien auf der Festplatte ebenfalls verschieben. Allerdings geben mir die zugehörigen Pfade der Dateien aus dem JTree immer solche [C:\, bin, boot.ini] aus. Damit kann ich ja nicht anfangen wenn ich die Dateien über Files verschieben will.
Habt ihr ne Idee wie ich das bewerkstelligen könnte?
relevanter Code:
Java:
public void drop( DropTargetDropEvent dtde ) {
TreePath tpSelectionPath = tree.getSelectionPath();
TreePath tpSourcePath = tpSelectionPath.getParentPath();
DefaultMutableTreeNode dmtSelectedNode = (DefaultMutableTreeNode) tpSelectionPath.getLastPathComponent();
Point pDropLocation = dtde.getLocation();
TreePath tpTargetPath = tree.getClosestPathForLocation(
pDropLocation.x, pDropLocation.y );
DefaultMutableTreeNode dmtTargetParentNode = (DefaultMutableTreeNode) tpTargetPath.getLastPathComponent();
DefaultMutableTreeNode dmtSourceParentNode = (DefaultMutableTreeNode) tpSourcePath.getLastPathComponent();
dmtSourceParentNode.remove( dmtSelectedNode );
dmtTargetParentNode.add( dmtSelectedNode );
String sFile = new String( tpSelectionPath.toString() );
String sDir = new String( tpTargetPath.toString() );
File fFile = new File( sFile.replaceAll( ", ", "/") );
File fDir = new File( sDir.replaceAll( ", ", "/") );
boolean success = fFile.renameTo( new File( fDir, fFile.getName() ) );
if( !success ) {
System.out.println( "Konnte die Datei " + fFile + " nicht nach" +
" " + fDir + " verschieben." );
}
System.out.println( "Die Datei: " + fFile );
System.out.println( "Hier rein: " + fDir );
dtde.dropComplete( true );
tree.updateUI();
}
} ) );
Ich habe versucht die Trennungen der Pfade [ , ] mit einem Slash zu ersetzen. Das klappt erstmal recht gut. Allerdings machen mir die eckigen Klammern noch Probleme :bahnhof:
Zuletzt bearbeitet: