ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
6813
6813
EMPFEHLEN
-
23.05.07 23:41 #1
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
schaut mal hier:
Es fehlt hier natürlich noch einiges ... beispielsweise die Signalisierung für nicht erlaubte Drag / Drop Aktionen...Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
/** * */ package de.tutorials; import java.awt.Dimension; import java.awt.Point; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetAdapter; import java.awt.dnd.DropTargetDropEvent; import javax.swing.DropMode; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.TransferHandler; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; /** * @author Tom */ public class JTreeDragNDropExample extends JFrame { JTree tree; public JTreeDragNDropExample() { super("JTreeDragNDropExample"); setDefaultCloseOperation(EXIT_ON_CLOSE); tree = new JTree(); tree.setDragEnabled(true); tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setDropMode(DropMode.USE_SELECTION); tree.setDropTarget(new DropTarget(tree, TransferHandler.MOVE, new DropTargetAdapter() { @Override public void drop(DropTargetDropEvent dtde) { TreePath selectionPath = tree.getSelectionPath(); TreePath sourcePath = selectionPath.getParentPath(); DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) selectionPath .getLastPathComponent(); Point dropLocation = dtde.getLocation(); TreePath targetPath = tree.getClosestPathForLocation( dropLocation.x, dropLocation.y); System.out.println("###################"); System.out.println("srcPath: " + sourcePath); System.out.println("targetPath: " + targetPath); System.out.println("selectedNode: " + selectedNode); if (isDropAllowed(sourcePath, targetPath, selectedNode)) { System.out.println("drop accept"); DefaultMutableTreeNode targetParentNode = (DefaultMutableTreeNode) targetPath .getLastPathComponent(); DefaultMutableTreeNode sourceParentNode = (DefaultMutableTreeNode) sourcePath .getLastPathComponent(); sourceParentNode.remove(selectedNode); targetParentNode.add(selectedNode); dtde.dropComplete(true); tree.updateUI(); } else { System.out.println("drop: reject"); dtde.rejectDrop(); dtde.dropComplete(false); } } private boolean isDropAllowed(TreePath sourcePath, TreePath targetPath, DefaultMutableTreeNode selectedNode) { if (((DefaultMutableTreeNode) sourcePath .getLastPathComponent()).isLeaf()) { } else if (targetPath.equals(sourcePath)) { return false; } return selectedNode.isLeaf(); } })); for (int currentRowIndex = 0; currentRowIndex < tree.getRowCount(); currentRowIndex++) { tree.expandRow(currentRowIndex); } JScrollPane scrollPane = new JScrollPane(tree); scrollPane.setPreferredSize(new Dimension(400, 100)); add(scrollPane); pack(); setVisible(true); } /** * @param args */ public static void main(String[] args) { new JTreeDragNDropExample(); } }
Das kann man aber ganz einfach über entsprechende dragOver(...) / dragEnter(...) Methoden implementieren...
Wie ich Swing hasse...
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Hallo,
seltsamer Zufall, ich hab was ähnliches erst die Tage geschrieben, Das kann ich morgen ja auch mal posten. Das ist etwas ausführlicher.
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
14.09.09 06:48 #3paranoidray Tutorials.de Gastzugang
Klasse
vielen Dank !
-
06.12.10 10:08 #4Napster05526 Tutorials.de Gastzugang
Tja schadhaft aber der Post des Drag'n Drop von die Sascha fehlt ja noch immer oder nicht?
Ähnliche Themen
-
Drag & Drop beim ersten Click
Von Woocash im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 28.05.09, 09:55 -
Drag & Drop von jTree in JList
Von elpresident im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 06.10.08, 16:34 -
JTree und Drag and Drop
Von port29 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 01.11.07, 16:14 -
JTree Elemente verschieben (Drag&Drop)
Von creatino_net im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 29.04.05, 17:31 -
Drag and Drop Beispiel
Von bwun im Forum JavaAntworten: 0Letzter Beitrag: 22.10.04, 16:53






Zitieren

Login





