Bonjour,
J'aimerai savoir comment on fait pour connaitre le bouton sur lequel on a cliqué dans un JSpinner, pour savoir si la valeur a été incrémentée ou décrémentée. Est-ce possible??
Bonjour,
J'aimerai savoir comment on fait pour connaitre le bouton sur lequel on a cliqué dans un JSpinner, pour savoir si la valeur a été incrémentée ou décrémentée. Est-ce possible??
Il y a moyen de récupérer la valeur propre du JSpinner si c'est ça que tu veux savoir.
Essaie ce bout de code, normalement, tu auras la valeur de ton JSpinner dans la console
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public void stateChanged(ChangeEvent e) { monJSpinner = (JSpinner)e.getSource(); System.out.println("Choix="+monJSpinner.getValue().toString()); }
Après, à toi de traiter l'info comme tu le souhaites.
A++
La valeur j'arrive à la récupérer ce que je veux faire en fait c'est voir si par rapport à la fois précédante elle a été augmentée ou diminuée.
Il te suffit de stocker la valeur précédente et de comparer dans ce cas. Je ne vois pas d'autres solutions.
A+
P.S : C'est pas aussi terrible que celà en a l'air.![]()
Il y a beaucoup plus propre : il suffit de créer son propre model pour le spinner, et de lui ajouter un attribut : l'ancienne valeur. Voici un petit exemple codé vite fait :
La méthode "getOldValue" permet de récupérer l'ancienne valeur, et donc de déduire le bouton cliquer (si bien sûr l'ensemble des données du spinner est facilement exploitable, genre une série de nombres).
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 import javax.swing.JFrame; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; public class SaveAncienValueSpinner extends SpinnerNumberModel { public static void main( String[] arg ) { JSpinner spinner = new JSpinner( new SaveAncienValueSpinner( 0, 0, 10, 1 ) ); JFrame frame; frame = new JFrame(); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); frame.getContentPane().add( spinner ); frame.pack(); frame.setVisible( true ); } Object oldValue; public SaveAncienValueSpinner( int value, int min, int max, int step ) { super( value, min, max, step ); oldValue = value; } @Override public Object getNextValue() { oldValue = getValue(); System.out.println( "avant next :" + getValue() ); return super.getNextValue(); } @Override public Object getPreviousValue() { oldValue = getValue(); System.out.println( "avant previous :" + getValue() ); return super.getPreviousValue(); } public Object getOldValue() { return oldValue; } }
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Partager