Bon, d'accord, je suis bourre ... mais quand meme !
5 réponses
Vincent Cantin
Bonjour,
Apres avoir courageusement sacrifier mon temps de ma court vie a vider les
reserves de rouge que l'on a fait pendant la derniere guerre mondiale (oui,
je suis patriote), il y a des choses que je ne comprends pas :
Quand j'ajoute un ListSelectionListener a ma JList customisee, je ne
comprends pas pourquoi elle ne me donne pas toujours l'index de la ligne
nouvellement selectionnee par l'utilisateur (en l'occurrence, moi).
J'utilise la methodeListSelectionListener.getFirstIndex() et
listSelectionListener.getLastIndex() .. et aucun ne me donne le bon index,
c'est a dire celui de la ligne selectionnable (je suis dans une liste ou
j'ai prealablement dit que je ne pouvais selectionner qu'un seule ligne a la
fois).
Ya aussi un truc que je ne comprends pas trop ... pour chaque clique, il me
genere 2 evenements ListSelectionEvent. Quelqu'un sait pourquoi ?
Solution trouvee (Il fallait juste lire attentivement les 3 lignes de la doc de la class event) :
JList list = (JList) e.getSource(); int indexDeLaListQueJecherchaisEnVain = list.getSelectedIndex();
Voila, c'est aussi simple.
Vincent Cantin
Ya aussi un truc que je ne comprends pas trop ... pour chaque clique, il me genere 2 evenements ListSelectionEvent. Quelqu'un sait pourquoi ?
Pour l'autre question, je ne vois pas... vérifie que les SelectionListener sont bien liés avec le SelectionModel qui correspond à ta liste.
Mais celle-ci, j'ai la solution:
à chaque clic, 2 évènements de sélection se présente. La déselection de l'item sélectionné précedemment. et la sélection du nouvelle item.
Vincent, bourre, mais bien conscient du pb.
Isammoc
Wouais, en fait il en fesait 2 : - un lors de l'appuie du bouton de la souris - un autre lors du relachement du bouton.
Pour n'en prendre qu'un seul (le dernier), j'ai utilise la fontion getValueIsAdjusting(). Ci-dessous le code de ma fontion entier :
public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting() == false) { JList list = (JList) e.getSource(); int etYopMonWantedIndex imageListModel.getElementAt(list.getSelectedIndex()); } }
Ya aussi un truc que je ne comprends pas trop ... pour chaque clique,
il me genere 2 evenements ListSelectionEvent. Quelqu'un sait pourquoi
?
Pour l'autre question, je ne vois pas... vérifie que les SelectionListener
sont bien liés avec le SelectionModel qui correspond à ta liste.
Mais celle-ci, j'ai la solution:
à chaque clic, 2 évènements de sélection se présente.
La déselection de l'item sélectionné précedemment.
et la sélection du nouvelle item.
Vincent, bourre, mais bien conscient du pb.
Isammoc
Wouais, en fait il en fesait 2 :
- un lors de l'appuie du bouton de la souris
- un autre lors du relachement du bouton.
Pour n'en prendre qu'un seul (le dernier), j'ai utilise la fontion
getValueIsAdjusting().
Ci-dessous le code de ma fontion entier :
public void valueChanged(ListSelectionEvent e)
{
if (e.getValueIsAdjusting() == false)
{
JList list = (JList) e.getSource();
int etYopMonWantedIndex imageListModel.getElementAt(list.getSelectedIndex());
}
}
Ya aussi un truc que je ne comprends pas trop ... pour chaque clique, il me genere 2 evenements ListSelectionEvent. Quelqu'un sait pourquoi ?
Pour l'autre question, je ne vois pas... vérifie que les SelectionListener sont bien liés avec le SelectionModel qui correspond à ta liste.
Mais celle-ci, j'ai la solution:
à chaque clic, 2 évènements de sélection se présente. La déselection de l'item sélectionné précedemment. et la sélection du nouvelle item.
Vincent, bourre, mais bien conscient du pb.
Isammoc
Wouais, en fait il en fesait 2 : - un lors de l'appuie du bouton de la souris - un autre lors du relachement du bouton.
Pour n'en prendre qu'un seul (le dernier), j'ai utilise la fontion getValueIsAdjusting(). Ci-dessous le code de ma fontion entier :
public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting() == false) { JList list = (JList) e.getSource(); int etYopMonWantedIndex imageListModel.getElementAt(list.getSelectedIndex()); } }
Vincent Cantin
public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting() == false) { JList list = (JList) e.getSource(); int etYopMonWantedIndex > imageListModel.getElementAt(list.getSelectedIndex()); } }
Typo, sorry, je voulais ecrire :
int etYopMonWantedIndex = list.getSelectedIndex();
.. mais je pense que les interesses comprendront.
Vincent
public void valueChanged(ListSelectionEvent e)
{
if (e.getValueIsAdjusting() == false)
{
JList list = (JList) e.getSource();
int etYopMonWantedIndex > imageListModel.getElementAt(list.getSelectedIndex());
}
}
Typo, sorry, je voulais ecrire :
int etYopMonWantedIndex = list.getSelectedIndex();