Bonjour à tous,
Je tente en ce moment d'implémenter un JPopupMenu sur une JList.
J'ai deux problèmes, à savoir :
-Lorsque que je clique gauche, mon menu contextuel s'ouvre normalement, seulement je veux que l'élément sur lequel j'ai cliqué se sélectionne. En gros je dois avoir le même comportement que lorsque je fais un simple clic droit. Je pensais que cela aurait du être un comportement normal de la JList, mais décidément elle n'a pas fini de me décevoir celle-là ...
-Ensuite lorsque je clique sur aucun élément de ma JList, elle m'affiche ma JPopupMenu. Mais je voudrais pouvoir dans ce cas indiquer aux éléments de mon menu qu'ils doivent se griser en utilisant setEnabled(). Seulement je n'arrive pas à déterminer si je clique réellement sur un élément de ma JList ou pas. Cela revient un peu au même souci que j'avais ici :
http://www.developpez.net/forums/d60...element-jlist/
Non résolu d'ailleurs ...
Bref voici mon contrôleur, celui qui est chargé de gérer les clics de la souris sur ma JList :
Je vous ai simplifié le code inutile pour ne garder que l'essentiel, mais si vous voulez plus de détails ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void mouseReleased(MouseEvent e) { /* Ici se trouvait le code sauvegardant l'élément sélectionné dans un attribut d'une classe. Ceci me permet de pouvoir le conserver même si je clique sur un autre élément de ma fenêtre. */ Timer timer = new Timer(200, this); timer.start(); if (e.isPopupTrigger()) { this.view.getPopupMenu().show(e.getComponent(), e.getX(), e.getY()); } if (e.getClickCount() > 1) { if (this.configurationList.getSelectedValue() != null) { //Modification } } }
Merci pour votre attention !
Partager