Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

JTree + Bouton Droit

1 réponse
Avatar
Toto Le Ouf
Bonsoir à tous,

Je suis en train de développer une petite application graphique et, pour
cela, j'utilise SWING.
J'ai réussi à afficher un JTree sans problème. Quand on clique sur celui-ci
avec le bouton gauche de la souris, il sélectionne un élément de l'arbre :
on peut alors effectuer un getLastSelectedPathComponent() sur le JTree pour
récupérer l'élément sélectionné.
Je souhaiterai faire la même chose avec le bouton droit de la souris.
Comment faire ?

Merci beaucoup.
T.

1 réponse

Avatar
Black Myst
Toto Le Ouf wrote:
Bonsoir à tous,

Je suis en train de développer une petite application graphique et, pour
cela, j'utilise SWING.
J'ai réussi à afficher un JTree sans problème. Quand on clique sur celui-ci
avec le bouton gauche de la souris, il sélectionne un élément de l'arbre :
on peut alors effectuer un getLastSelectedPathComponent() sur le JTree pour
récupérer l'élément sélectionné.
Je souhaiterai faire la même chose avec le bouton droit de la souris.
Comment faire ?


Il faut que tu créer ton propre TreeCellEditor soit en surchageant
DefaultTreeCellEditor, mais il reste un constructeur à faire pas
forcement pratique.

class MyEditor extends DefaultTreeCellEditor {
public boolean shouldSelectCell(EventObject event) {
return event instanceOf MouseEvent;
}
}

Soit en créant son implem de zero:
class MyEditor implements TreeCellEditor {
public boolean shouldSelectCell(EventObject event) {
return event instanceOf MouseEvent;
}

public boolean isCellEditable(EventObject event) {
return false;
}
// ...
}
Les méthodes addCellEditorListener, cancelCellEditing,
removeCellEditorListener et stopCellEditing ne font rien, comme on ne
retrera jamais en edition, on n'a pas besoin de se préparer à notifier
de la fin de l'edition.
getCellEditorValue et etTreeCellEditorComponent renvoie null, idem que
précédement, on n'editera jamais réel le contenu de l'arbre.

puis :
jtree.setCellEditor(new MyEditor());

cdt
Black Myst