2017-09-03 3 views
0

Après avoir fait glisser et déposer un nœud, le nouveau parent du nœud se développe. Je veux désactiver cela.Empêche le développement de JTree après un glisser-déposer

J'ai étendu la classe TransferHandler et j'ai dépassé la méthode importData. Dans cette méthode, je fais le mouvement réel. Après le déplacement du nœud je vérifie si le nœud parent isExpanded et je reçois false comme réponse.
Alors où et comment puis-je annuler l'expansion?

+1

Pour une meilleure aide plus tôt, postez un [MCVE] ou [Short, autoportantes correcte Exemple] (http: //www.sscce .org /). –

Répondre

0

Peut-être que vous pouvez utiliser addTreeWillExpandListener et ajouter un écouteur comme ceci:

public class DisableExpansionListener implements TreeWillExpandListener { 
    @Override 
    public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException { 
     throw new ExpandVetoException(event, "Disallow all expansions!"); 
    } 

    @Override 
    public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException 
     // allow collapsing! 
    } 
} 
+0

Si je comprends bien, cela désactivera la possibilité d'étendre l'arbre. Je veux seulement désactiver l'expansion automatique après le glisser-déposer. Merci. –

+0

Je sais, mais vous avez déjà implémenté un TransferHandler, il devrait donc être possible d'ajouter l'écouteur lorsque le glisser est démarré et de le retirer à nouveau une fois terminé. – user3151902

+0

Ok. Je vois ce que vous avez fait là-bas;) J'aimerais qu'il y ait une meilleure solution –