J'ai une JList à laquelle j'associe un ListSelectionListener (pour associer à une action quand la ligne sélectionnée dans la JList change) mais le listener n'est pas appelé quand je clique sur une autre ligne.
Est ce la bonne façon de faire ?
merci
J'ai une JList à laquelle j'associe un ListSelectionListener (pour associer à une action quand la ligne sélectionnée dans la JList change) mais le listener n'est pas appelé quand je clique sur une autre ligne.
Est ce la bonne façon de faire ?
merci
Pour t'en assurer tu peux consulter How to Write a List Selection Listener.
Alors j'ai testé sur un exemple simple et là pas de probleme:
Seulement l'évènement est appelé lors de l'appui et du relâchement du clic de la souris ....
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 import javax.swing.JFrame; import javax.swing.JList; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; public class Test { public static void main(String[] args) { String[] data = {"1", "2", "3"}; JList jl = new JList(data); jl.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { System.out.println("Sélection a changé " + e.getFirstIndex()); } }); JFrame jf = new JFrame(); jf.add(jl); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.pack(); } }
Ce que je voudrais c'est qu'il le soi qu'une seule fois.
Comment puis je faire ça?
merci
En jouant sur le getValueIsAdjusting du ListSelectionEvent ; la première fois elle est à true, la deuxième à false.
Partager