J'ai un objet personnalisé qui a une description (String) et une valeur de priorité (int). J'affiche ces valeurs dans un arbre JT car il existe une relation hiérarchique entre les différents objets de ce type. Je n'affiche que la description dans les nœuds de l'arbre car la priorité n'est pas importante pour l'affichage.
J'aimerais qu'une fenêtre JDialog s'ouvre lorsque je modifie un nœud de JTree (feuille ou nœud) - par exemple en appuyant sur F2. Cette boîte de dialogue sera ensuite utilisée pour éditer à la fois la description et la priorité.
Comment empêcher le JTree d'effectuer l'édition par défaut du texte en tant que champ de texte et d'appeler la boîte de dialogue personnalisée à la place ?
Une solution simple consisterait à sous-classer la classe DefaultTreeCellEditor et à surcharger la méthode isCellEditable. J'invoquerais alors le JDialog (je peux obtenir les éléments d'initialisation pertinents lorsque j'instancie le DefaultTreeCellEditor personnalisé) et renverrais simplement false pour empêcher l'édition par défaut - mais cela ne me semble pas assez élégant.