J'ai une classe dérivée de JTree avec TreeCellRenderers personnalisé. J'ai implémenté le glisser-déposer dans cet arbre, donc un utilisateur peut réorganiser des nœuds d'arbre.Faites glisser et déposer des commentaires dans un JTree avec TreeCellRenderer personnalisé (Java, Swing)
Le mode de suppression est DropMode.ON_OR_INSERT
, ce qui permet à l'utilisateur de supprimer des nœuds sur ou entre d'autres nœuds. Pendant que l'utilisateur fait glisser le noeud, si le pointeur pointe entre les noeuds, une ligne bleue est dessinée indiquant l'emplacement où le noeud sera inséré. Si le pointeur est sur un noeud, il n'y a aucune indication de l'endroit où le noeud sera ajouté. Cela ne se produit que lorsque j'utilise mon TreeCellRenderer personnalisé. Si j'utilise DefaultTreeCellRenderer, le nœud de dépôt est mis en surbrillance pendant le glisser.
J'ai trouvé quelques exemples sur le web, où les gens stockent le nœud actuellement mis en surbrillance dans le JTree et l'interrogent à partir du TreeCellRenderer, rendant le nœud de couleur différente si TreeCellRenderer est appelé pour le nœud supposé être a souligné.
Existe-t-il une solution plus élégante pour mettre en surbrillance le nœud de dépôt? Je n'ai pas réussi à comprendre comment DefaultTreeRenderer fait cela - il ne semble pas y avoir de hook pour glisser-déposer des fonctionnalités.