Bonjour,
j'ai 3 sliders, 2 sliders qui marchent en utilisant cette fonction
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 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(); }
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
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(); }
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 ?
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); } });
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); }
Partager