Bonjour
Connaitriez vous un moyen d'annuler la selection d'un élément dans une JList lorsque l'utilisateur clique dans la jList sans cliquer sur un des éléments qui s'y trouvent ?
Actuellement je fais ainsi :
Le problème est qu'avant d'interpreter le clic souris, java semble selectionner l'élément le plus proche du clic (certainement via locationToIndex()) du coup, avant de nettoyer ma selection, java selectionne un élément intermédiaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private void listMouseClicked(java.awt.event.MouseEvent evt) { int selectedIndex = this.list.locationToIndex(evt.getPoint()); Rectangle selectedCell = this.list.getCellBounds(selectedIndex, selectedIndex); if(!selectedCell.contains(evt.getPoint())){ list.clearSelection(); } }
Je ne sais pas si c'est suffisament clair, donc voici un schéma résumant ma situation
Voici les différents états de ma jList
initialement :
intermédiaire (provoqué par la gestion interne des jList par java, je suppose) :[ element 1 <= initialement sélectionné
element 2
element 3
vide
vide <= clic effectué
...... ]
final (après l'exécution de ma méthode listMouseClicked(java.awt.event.MouseEvent evt))[ element 1
element 2
element 3 <= sélectionné par java (probablement via locationToIndex())
vide
vide
...... ]
Donc au final j'arrive bien à une liste avec tous les éléments désélectionnés, mais je voudrais supprimer l'état intermédiaire qui semble me sélectionner par défaut l'élément le plus près de mon clic, je voudrais que si je ne clic pas sur un élément de la jList (tout en cliquant dans la jList) aucun autre élément ne soit sélectionné.[ element 1
element 2
element 3 <= perte sélection
vide
vide
...... ]
Quelqu'un aurait-il une idée ?
Merci d'avance !
Si je n'ai pas été assez clair, dites le moi, j'essayerais d'éclaircir les points d'ombre de mon explication
Partager