Salut, j'ai eu le même problème pour mon applic. Je voulais déplacer des noeuds dans l'arbre, c'est maintenant chose faite.
J'explique le principe. Pour transferer un objet il doit implementer l'interface java.awt.datatransfer.Transferable qui ne comprend que trois fonctions. Voici un noeud d'arbre qui implmente cette interface:
import java.awt.dnd.*; import java.awt.datatransfer.*; import java.io.*;
class FlyingNode extends javax.swing.tree.DefaultMutableTreeNode implements java.awt.datatransfer.Transferable { FlyingNode() { super(); } FlyingNode(Object obj) { super(obj); } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if(!isDataFlavorSupported(flavor)) throw new UnsupportedFlavorException(flavor); else return this; } public DataFlavor[] getTransferDataFlavors() { DataFlavor temp=null; try{ temp=new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType); } catch(ClassNotFoundException ex) {} DataFlavor[] retour=new DataFlavor[1]; retour[0]=temp; return retour; } public boolean isDataFlavorSupported(DataFlavor flavor) { DataFlavor temp=null; try{ temp=new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType); } catch(ClassNotFoundException ex) {} return (flavor.equals(temp)); } }
|
il faut remplacer tes noeuds à délacer par cette classe et tu pourra les transferer, je me suis entièrement inspiré du code present sur cette page :
[ Lien ]j'espère que ca t'eclairera.