JTree Elemente verschieben (Drag&Drop)

creatino_net

Grünschnabel
Hallo,

wie realisiere ich eine Drag&Drop-Verschiebung von Elementen in einem JTree?
Habe mein eigenes TreeModel.
Mir fehlt aber jeder Hauch eines Ansatzes
Wie sage ich dem Programm dass der User ein Element verschieben will?
Und wie bekomme ich raus, wohin er es verschiebt?

:( sorry, neu hier
 
Hi Tom,

erst Mal danke für den Link!
Das Beispiel ist allerdings etwas umfangreich, brauch also etwas um das alles nachzuvollziehen, weil es sich darauf konzentriert, Drag&Drop zu visualisieren.
Da ich vorerst nur ein einfaches DnD haben will, bin ich einen anderen Weg gegangen:

Ich benutze nur zwei Dinge für mein DnD:

1. eine Transferable-Klasse erstellen, die das Custom-Objekt überträgt.
2. CustomTransferHander extends TransferHandler, in der folgende Funktionen überschrieben werden:

public int getSourceActions(JComponent c) // Damit der JTree weiß, ob COPY, MOVE oder beides unterstützt wird
protected Transferable createTransferable(JComponent c) //erstellt das Transferable mit dem Custom-Objekt
public boolean importData (JComponent c, Transferable t) // hier fordere ich das TreeModel dazu auf, das Objekt als Child-Element hinzuzufügen
public boolean canImport(JComponent c, DataFlavor[] flavors) // sagt, ob er was mit den Data-Flavors des Transferables anfangen kann…

danach dann einfach den JTree einrichten:
documentTree.setEditable(true);
documentTree.setTransferHandler(new ElementTransferHandler(treeModel));
 
Zurück