2017-09-03 7 views
0

Nachdem ich einen Knoten per Drag & Drop verschoben habe, wird das neue übergeordnete Element des Knotens erweitert. Ich möchte das deaktivieren.Verhindern, dass JTree nach dem Ziehen und Ablegen expandiert

Ich erweiterte die Klasse TransferHandler und überschritt die Methode importData. In dieser Methode mache ich den eigentlichen Umzug. Nach dem Verschieben des Knotens überprüfe ich, ob der Elternknoten isExpanded und ich false als Antwort bekommen.
Also wo oder wie kann ich die Erweiterung abbrechen?

+1

Für eine bessere Hilfe früher, Posten [MCVE] oder [Kurz, Self Contained, Korrekt Beispiel] (http: //www.sscce .org /). –

Antwort

0

Vielleicht können Sie addTreeWillExpandListener verwenden und einen Hörer wie folgt hinzu:

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

Wie ich es verstehe, wird es die Möglichkeit deaktivieren, den Baum zu erweitern. Ich möchte nur die automatische Erweiterung nach dem Drag & Drop deaktivieren. Vielen Dank. –

+0

Ich weiß, aber Sie haben bereits einen TransferHandler implementiert, daher sollte es möglich sein, den Listener hinzuzufügen, wenn der Ziehvorgang gestartet wird, und ihn nach dem Beenden wieder zu entfernen. – user3151902

+0

Ok. Ich sehe, was du dort gemacht hast;) Ich wünschte, es gäbe eine bessere Lösung –

Verwandte Themen