Bonjour,

j'ai 3 sliders, 2 sliders qui marchent en utilisant cette fonction
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
public void stateChanged(int min, int max)
	{
 
 
		for(int x=0;x<monImage.getWidth();x++)
		{
			for(int y=0;y<monImage.getHeight();y++)
			{
				int rgb = outImgbo36nb.getRGB(x,y);
				int rgb2 = outImgbonb.getRGB(x,y);
				int rgb3 = outImgc.getRGB(x,y);
				int rgbt = sImg.getRGB(x,y);
				int rgbtt = hImg.getRGB(x,y);
 
				//Changement BO360
				if(selected.equals("360nb")){
					if((rgb&0xff) > max || (rgb&0xff) < min)
						outImgbobnb36.setRGB(x,y, 0xff000000);
					else
						outImgbobnb36.setRGB(x,y, outImgbo36nb.getRGB(x,y));
 
				}
 
				//Changement saturation
				if(selected.equals("fs")||(selected.equals("ft"))||(selected.equals("cm"))){
					if((rgbt&0xff) > max || (rgbt&0xff) < min)
						sImgb.setRGB(x,y, 0xff000000);
					else{
						if (sImgstock != null)
						sImgb.setRGB(x,y, sImgstock.getRGB(x,y));
						else 
							sImgstock=sImg;
					}
				}
 
				if (min<max){
				//Changement BO180
				if(selected.equals("180nb")){
					if((rgb2&0xff) > max || (rgb2&0xff) < min)
						outImgbobnb18.setRGB(x,y, 0xff000000);
					else
						outImgbobnb18.setRGB(x,y, outImgbonb.getRGB(x,y));
				}}
				/*
				//Changement courbure
				if(selected.equals("cour")){
					if((rgb3&0xff) > max || (rgb3&0xff) < min)
						outImgbobc.setRGB(x,y, 0xff000000);
					else
						outImgbobc.setRGB(x,y, outImgc.getRGB(x,y));
 
				}*/
 
			}
		}
		if(selected.equals("180nb"))
			monImage = outImgbobnb18;
		else if(selected.equals("360nb"))
			monImage = outImgbobnb36;
		else if(selected.equals("fs"))
			monImage = sImgb;
		sImgch=sImgb;
		repaint();
			}
et un 3eme qui marche en utilisant
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
	public void stateChanged1(int value)
	{
 
		for(int x=0;x<monImage.getWidth();x++)
		{
			for(int y=0;y<monImage.getHeight();y++)
			{
				int rgb = outImg.getRGB(x,y);
				int rgbt = sImg.getRGB(x,y);
				//Changement teinte saturation
				if((rgbt&0xff) < value  )
				{
					if(selected.equals("ft"))
						hImgb.setRGB(x,y, 0xff000000);
					if(selected.equals("cm"))
						tocolorb.setRGB(x,y, 0xff000000);
					if(selected.equals("fs")||selected.equals("cm")||selected.equals("ft"))
						sImgb1.setRGB(x,y, 0xff000000);
				}
					else {
						if(selected.equals("ft"))
							hImgb.setRGB(x,y, hImg.getRGB(x,y));
						if(selected.equals("cm"))
							tocolorb.setRGB(x,y, tocolor.getRGB(x,y));
						if(selected.equals("fs")||selected.equals("cm")||selected.equals("ft"))
							sImgb1.setRGB(x,y, sImg.getRGB(x,y));
 
						 }
 
 
				//Changement BO courbure
				if((rgb&0xff) < value || (rgb&0xff) == 255.0f  )
				{
					if(selected.equals("cour"))
						outImgbobc.setRGB(x,y, 0xff000000);
					else if(selected.equals("180"))
						outImgbob18.setRGB(x,y, 0xff000000);
					else if(selected.equals("360"))
						outImgbob36.setRGB(x,y, 0xff000000);
					else if(selected.equals("180nb"))
						outImgbobnb18.setRGB(x,y, 0xff000000);
					else if(selected.equals("360nb"))
						outImgbobnb36.setRGB(x,y, 0xff000000);
					else if(selected.equals("mg"))
						outImgmo.setRGB(x,y, 0xff000000);
					else if(selected.equals("courcou"))
						outImgcbnb.setRGB(x,y, 0xff000000);
 
				}
				else
				{
					if(selected.equals("cour"))
						outImgbobc.setRGB(x,y, outImgc.getRGB(x,y));
					else if(selected.equals("180"))
						outImgbob18.setRGB(x,y, outImgbo.getRGB(x,y));
					else if(selected.equals("360"))
						outImgbob36.setRGB(x,y, outImgbo36.getRGB(x,y));
					else if(selected.equals("180nb"))
						outImgbobnb18.setRGB(x,y, outImgbonb.getRGB(x,y));
					else if(selected.equals("360nb"))
						outImgbobnb36.setRGB(x,y, outImgbo36nb.getRGB(x,y));
					else if(selected.equals("mg"))
						outImgmo.setRGB(x,y, outImgmo.getRGB(x,y));
					else if(selected.equals("courcou"))
						outImgcbnb.setRGB(x,y, outImgcnb.getRGB(x,y));
 
 
				}
			}
		}
		if(selected.equals("cour"))
			monImage = outImgbobc;
		else if(selected.equals("180"))
			monImage = outImgbob18;
		else if(selected.equals("360"))
			monImage = outImgbob36;
		else if(selected.equals("180nb"))
			monImage = outImgbobnb18;
		else if(selected.equals("360nb"))
			monImage = outImgbobnb36;
		else if(selected.equals("mg"))
			monImage = outImgmo;
		else if(selected.equals("courcou"))
			monImage = outImgcbnb;
		else if(selected.equals("ft"))
			monImage = hImgb;
		else if(selected.equals("cm"))
			monImage = tocolorb;
		else if(selected.equals("fs"))
			monImage = sImgb1;
			sImgch=sImgb1;
			sImgstock=sImgb1;
 
		repaint();
 
	}
Du coup je veux que les 2 premières sliders ecoutent le changement du 3eme alors j'utilise ça
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
  slider.addChangeListener(new ChangeListener(){
				        public void stateChanged(ChangeEvent e) {
 
				            int min = ((javax.swing.JSlider)(e.getSource())).getValue(); // on recupere la valeur concernant l'�venement
				            int max = slider1.getValue(); // on recupere la valeur concernant l'autre silder
                                          int val = slider2.getValue(); // on récupère la valeur du slider2
				            panneau.traitement(val, min, max);
 
				        }
 
				   });
 
				   // on met un ecouteur sur le second slider pour ecouter le changement sur celui-ci			   
 
				   slider1.addChangeListener(new ChangeListener(){
				        public void stateChanged(ChangeEvent e) {
 
				        	int min =  slider.getValue(); // on recupere la valeur concernant l'evenement
				        	int max = slider1.getValue(); // on recupere la valeur concernant l'autre silder
 
                                          int val = slider2.getValue(); // on récupère la valeur du slider2
                                          panneau.traitement(val, min, max);
				            //System.out.println("Valeur Slider 1   " +max);
 
				        }
 
				   });
 
 
				   slider2.addChangeListener(new ChangeListener(){
					    public void stateChanged(ChangeEvent e) {
					        int max =  slider.getValue(); // on recupere la valeur concernant l'evenement
				            int min = slider1.getValue(); // on recupere la valeur concernant l'autre silder
                           int val = ((javax.swing.JSlider)(e.getSource())).getValue(); // on récupère la valeur du slider2
                           panneau.traitement(val, min, max);
					    }
					});
Le prb c'est que les 2 sliders malgres ma methode n'ecoutent pas le changement du 3eme. (j'entends pas ecouter, à partir du changement du 1er slider, les 2 autres sliders interviennent et nnon pas à partir de l'image de départ). Pouvez vous m'aider svp je crois avoir looper qqch ?
Foction traitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public void traitement(int value, int min, int max) { // une méthode qui fait le traitement 2
		stateChanged1(value);
		stateChanged(min, max);
		}