Evenement "clic sur aucun élément" d'une JList ?
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 :
Code:
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();
}
} |
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.
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 :
Citation:
[ element 1 <= initialement sélectionné
element 2
element 3
vide
vide <= clic effectué
...... ]
intermédiaire (provoqué par la gestion interne des jList par java, je suppose) :
Citation:
[ element 1
element 2
element 3 <= sélectionné par java (probablement via locationToIndex())
vide
vide
...... ]
final (après l'exécution de ma méthode listMouseClicked(java.awt.event.MouseEvent evt))
Citation:
[ element 1
element 2
element 3 <= perte sélection
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é.
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 ;)