IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Slide avec deux knobs


Sujet :

AWT/Swing Java

  1. #21
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Et alors ? Tu as une méthode avec un paramètre, et une méthode avec deux. Quel est problème ? Tu appelles la première en passant la valeur du slider associé, et l'autre avec les valeurs des deux sliders associés. Rien que de très courant dans un programme Java. Et c'est ce que je te montres dans mon dernier mesage.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  2. #22
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Oui enfaite ce que j'essayais de vous expliquer c'est quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void traitement(javax.swing.event.ChangeEvent e, int min, int max) { // une méthode qui fait le traitement 2
    		stateChanged1(e);
    		stateChanged(min, max);
    		}
    J'ai pas un type traintement (int,int,int) et du coup ça génère une erreur

  3. #23
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mais arrête de passer l'évenement en paramètre : je t'ai montré en passant un int, sur le cas des deux sliders. L'évenement c'est seulement quand il y'a évenement : comme il faut aller chercher la valeur même quand il n'y en a pas (d'évenement) tu ne peux pas procéder comme ça. Lis un peu le code : tu verras que dans un cas je vais chercher la valeur dans l'évenement et dans l'autre directement sur le slider par getValue(). Normalement, en t'inspirant du cas des deux sliders, tu dois pouvoir réaliser ce cas toute seule.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #24
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Merci pour votre retour ! Du coup j'ai CORIGE mon code
    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
    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);
    				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("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));
     
    				}
    			}
    		}

    Et puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       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);
    					    }
    					});
    Mais du coup juste en essyant de bouger le slider2 l'image est toute noir !

  5. #25
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ceci est étrange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int max =  slider.getValue(); // on recupere la valeur concernant l'evenement
    int min = slider1.getValue(); // on recupere la valeur concernant l'autre silder
    Y'aurait pas une inversion, genre slider c'est le min et slider1 c'est le max ?

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int min =  slider.getValue(); // on recupere la valeur concernant l'evenement
    int max = slider1.getValue(); // on recupere la valeur concernant l'autre silder
    Remarque : ça n'arriverait pas si tes sliders avaient un nom logique et non un truc genre slider1, slider2...slider25, etc.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #26
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Non déjà essayer mais rien
    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);
    					    }
    					});

  7. #27
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Et ta méthode traitement elle fait quoi ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #28
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    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);
    		}

  9. #29
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Donc, ce sont tes méthodes qui y sont appelées... et si elles font ce que je vois que tu me montres, alors elles ne font pas "rien".
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #30
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Oui la methode "stadechanged" marche, et les 2 sliders qui y dependent marchent aussi mais du coup celle là qui rend l'image toute noir
    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
    	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);
    				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("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));
     
    				}
    			}
    		}
    Au début avant de modifier le code pour que les 3 sliders un dépend de l'autre ça marchait du coup croyez vous que j'ai looper un truc ?
    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
    public void stateChanged1(javax.swing.event.ChangeEvent e)
    	{
    		int value = ((javax.swing.JSlider)(e.getSource())).getValue();
     
     
    		for(int x=0;x<monImage.getWidth();x++)
    		{
    			for(int y=0;y<monImage.getHeight();y++)
    			{
    				int rgb = outImg.getRGB(x,y);
    				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("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));
     
    				}
    			}

  11. #31
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    La methode stateChanged1 rend des images noires si la composante rouge de tous ses pixels est inférieure à la valeur du slider, ou si elle est égal à 255. Donc c'est que la valeur du slider valide cette condition. Tu as mis quoi comme paramètres pour initialiser le slider (min, max ?)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #32
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    ce que je vous ai montré toute à l'heure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    slider2.addChangeListener(new ChangeListener(){
    					    public void stateChanged(ChangeEvent e) {
    					        int max =  slider1.getValue(); // on recupere la valeur concernant l'evenement
    				            int min = slider.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);
    					    }

  13. #33
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je parle du new JSlider()... des valeurs que tu passes en paramètres et qui déterminent l'intervalle de valeurs produites par le slider.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  14. #34
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    slider2 = new JSlider(JSlider.HORIZONTAL, 0, 255, 0);

  15. #35
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,
    je siens de retester mon programme et du coup j'ai mis mon slider et slider 1 les deux au max puis j'ai essayé de bouger le slider2 (pas de changement) sinon s'ils sont pas au max quand je bouges slider2 c'est tout noir ! Du coup, normalement ce que je voulais c'est que le slider2 aie un changement indépendannement de slider et slier2, puis le résultat de ce changement effectuer à partir de slider2 y'aura l'affichage de ce qui est entre min et max de slider et slider1.
    Merci pour ta patiennnnce !!
    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
     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);
    				        }
     
    				   });
     
     
    				   slider2.addChangeListener(new ChangeListener(){
    					    public void stateChanged(ChangeEvent e) {
    					        int max =  slider1.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);
    					    }
    					});
    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    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);
    				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("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));
     
    				}
    			}
    		}
    		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;
    		repaint();
     
    	}
    	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);
     
    				if(selected.equals("360nb")){
    					if((rgb&0xff) > min || (rgb&0xff) < max)
    						outImgbobnb36.setRGB(x,y, 0xff000000);
    					else
    						outImgbobnb36.setRGB(x,y, outImgbo36nb.getRGB(x,y));
     
    				}
     
    				if(selected.equals("180nb")){
    					if((rgb2&0xff) > min || (rgb2&0xff) < max)
    						outImgbobnb18.setRGB(x,y, 0xff000000);
    					else
    						outImgbobnb18.setRGB(x,y, outImgbonb.getRGB(x,y));
     
    				}
     
    				if(selected.equals("cour")){
    					if((rgb3&0xff) > min || (rgb3&0xff) < max)
    						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;
    		repaint();
    			}
     
     
     
    	public void traitement(int value, int min, int max) { // une méthode qui fait le traitement 2
    		stateChanged1(value);
    		stateChanged(min, max);
    		}

  16. #36
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je n'ai rien compris.

    En tout cas, il y a une erreur là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    slider2.addChangeListener(new ChangeListener(){
    					    public void stateChanged(ChangeEvent e) {
    					        int max =  slider1.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);
    					    }
    					});
    min c'est slider, par slider1 !

    [EDIT]
    Autre chose : il y a quelque chose de pas logique dans le traitement. On est censé avoir un traitement 1 puis un traitement 2 et affiché le résultat. Ce qu'on pourrait écrire mathématiquement par : j'ai une entrée x, j'ai une fonction f, une second fonction f, et je calcule un résultat y, y = g(f(x)), et j'affiche ce résultat y. Le traitement 2 est censé s'exécuter sur le résultat du traitement 1, sinon il n'y a aucun intérêt à les combiner. Or, tes deux méthodes prennent des entrées différentes (tout en parcourant les pixels de la même image (j'ose espérer que toutes ces images ont la même taille, mais sinon ce n'est déjà par très propre tout ça), et les deux méthodes modifies toutes les deux monImage.Maintenant, je ne sais pas ce qui est affiché au final.

    Par ailleurs, c'est devenu une usine à gaz ton code et forcément c'est d'autant plus complexe à déboguer et ça favorise nettement les possibilités d'erreur et de confusion. Je t'avais déjà dit qu'il fallait que tu mettes un peu d'ordre la dedans en factorisant et en isolant. Et un peu de nommage, d'indentation et ce genre de chose ne ferait pas de mal.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  17. #37
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    slider2 fais une modification quelconque. Du coup résultat sur l'ecran image modifié
    slider et slider1 je l'ai ai fais pour avoir que les pixels qui sont entre les 2 valeurs de ses dernières. Je veux que ses pixels afficher de l'image soit à partir de l'image modifié grace à slider2, par contre moi il raffraichis l'image il obtient l'image de départ puis afficher les pixels...

  18. #38
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est bien ce que je dis dans mon précédent message (voir [EDIT]) : il y a un problème de logique à ce niveau. Si le traitement 2 (donc stateChange : le nom inadapté ça complique les choses) doit s'appliquer sur le résultat du traitement 1 (stateChange1 : autre nom inadapté), ce n'est pas ce que fait ton code. Le résultat du premier traitement va dans monImage et ce n'est pas cette image qui est traitée en entrée du second traitement.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  19. #39
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    En plus, je n'avais pas vu que tu as changé le code pour slider et slider1 !

    Les conditions sur les intervalles du genre if((rgb&0xff) > min || (rgb&0xff) < max) sont toutes fausses. Cette condition n'est pas logique pour gérer un intervalle [min,max].

    Un élément qui est entre min et max, est supérieur à min ET (&&) inférieur à max. Avec des égalités si les bornes soit incluses.

    a>min OU b<max, veut dire toutes les valeurs de a passe la condition, donc toutes les valeurs donnent des points noirs.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [JTable] Cellule avec deux boutons
    Par cherbox dans le forum Composants
    Réponses: 3
    Dernier message: 12/08/2004, 17h26
  2. comment filtrer une table avec deux criteres càd 2 colonnes
    Par athmane2dz dans le forum Bases de données
    Réponses: 7
    Dernier message: 28/07/2004, 15h25
  3. [CR] instruction If avec deux opérations
    Par MaDmAtT dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 19/07/2004, 13h54
  4. Réponses: 10
    Dernier message: 10/06/2004, 16h20
  5. [langage] split avec deux motifs (Newbie)
    Par Raumsog II dans le forum Langage
    Réponses: 2
    Dernier message: 07/06/2004, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo