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

Interfaces Graphiques en Java Discussion :

Réinitialiser un JComboBox


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Points : 26
    Points
    26
    Par défaut Réinitialiser un JComboBox
    Bonjour tous,
    j'ai développé un programme java qui contient trois (3) JComboBox , je veux que le deuxième JComboBox s'affiche lorsque je fais le choix sur le premier , et le troisième s'affiche lorsque je fais le choix sur le deuxième j'ai programmé un code et voilà mon idée
    premièrement j'ai déclaré mes variables
    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
    private JComboBox domaine, domaineSecondaire, spécialité;
    private String [] dm = {"","Science","Littérature","Histoire","Informatique"} ;
    	private String [] dms1 = {"","Vitérinaire","Biologie","Médecine"};
    	private String [] dms2 = {"","Arabe","Français","Anglais"} ;
    	private String [] dms3 = {"","Islam","Guerre Mondiale","Guerre Algérienne"} ;
    	private String [] dms4 = {"","Programmation","Maintenance","Réseaux"};
    	private String [] s1 ={"","Chats","Chiens"} ;
    	private String [] s2 ={"","Être Humain","Corp","Quelque chose"} ;
    	private String [] s3 ={"","Dentiste","Médecin Généraliste","Pédiatre","Neurologue"} ;
    	private String [] s4 ={"","Taha Hussein"};
    	private String [] s5 ={"","Victor Hugo"};
        private String [] s6 ={"","Chikspire"};
        private String [] s7 ={"","Prophète MOHAMED"};
        private String [] s8 ={"","Hitler"};
        private String [] s9 ={"","La bataille d'Alger"};
    	private String [] s10 ={"","JAVA","C++","C#","PHP"} ;	
    	private String [] s11 ={"","HardWare","SoftWare"};
    	private String [] s12 ={"","Installation réseaux"};
    cette méthode permet d'instancier mes variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void instancierComposants() {
    		cont = getContentPane();
    		domaine = new JComboBox(dm);
    		domaineSecondaire = new JComboBox();
    		spécialité = new JComboBox();
    	}
    et cette méthode permet configurer les composants

    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
    private void configurerComposants(){
    		cont.setLayout(null);
    		domaine.addActionListener(this);
    		domaineSecondaire.addActionListener(this);
    		ajouterComposant(cont, domaine, 100, 60, 370, 30);
            ajouterComposant(cont, domaineSecondaire, 100, 165, 370, 30);
            ajouterComposant(cont, spécialité, 100, 270, 370, 30);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setTitle("Reformulation de le requète par réinjection automatique de la pertinence");
            setResizable(false); // desactiver le bouton d'agrandissement 
            setLocation(new Point(0, 0));
            setSize(new Dimension(600, 600));
            setVisible(true);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
    	}
    cette méthode permet d'afficher le deuxième JComboBox selon le choix du premier

    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
     private void choix(){
        	String dom = (String) domaine.getSelectedItem() ;
        	domaineSecondaire.hide() ;
        	if (dom.equals("Science")) domaineSecondaire = new JComboBox(dms1);
    		else{
    			if(dom.equals("Littérature")) domaineSecondaire = new JComboBox(dms2);	
    			else{
    				if(dom.equals("Histoire")) domaineSecondaire = new JComboBox(dms3);
    				else{
    					if(dom.equals("Informatique")) domaineSecondaire = new JComboBox(dms4);		
    				}
    			}
     
    		}
    		ajouterComposant(cont, domaineSecondaire, 100, 165, 370, 30);
        }
    et cette méthode permet d'afficher le troisième selon le choix du duxième

    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
    private void choixD(){
        	String domS = (String) domaineSecondaire.getSelectedItem() ;
        	String dom = (String) domaine.getSelectedItem() ;
        	spécialité.hide() ;
        	if (dom.equals("Science")){
        		if(domS.equals("Vitérinaire")) spécialité = new JComboBox(s1) ;
        		else{
        			if(domS.equals("Biologie")) spécialité = new JComboBox(s2) ;
        			else{
        				if(domS.equals("Médecine")) spécialité = new JComboBox(s3) ;
        			}
        		}
        	}
    		else{
    			if(dom.equals("Littérature")){
    				if(domS.equals("Arabe")) spécialité = new JComboBox(s4) ;
    	    		else{
    	    			if(domS.equals("Français")) spécialité = new JComboBox(s5) ;
    	    			else{
    	    				if(domS.equals("Anglais")) spécialité = new JComboBox(s6) ;
    	    			}
    	    		}
    			}
    			else{
    				if(dom.equals("Histoire")){
    					if(domS.equals("Islam")) spécialité = new JComboBox(s7) ;
    		    		else{
    		    			if(domS.equals("Guerre Mondiale")) spécialité = new JComboBox(s8) ;
    		    			else{
    		    				if(domS.equals("Guerre Algérienne")) spécialité = new JComboBox(s9) ;
    		    			}
    		    		}
    				}
    				else{
    					if(dom.equals("Informatique")){
    						if(domS.equals("Programmation")) spécialité = new JComboBox(s10) ;
    			    		else{
    			    			if(domS.equals("Maintenance")) spécialité = new JComboBox(s11) ;
    			    			else{
    			    				if(domS.equals("Réseaux")) spécialité = new JComboBox(s12) ;
    			    			}
    			    		}
    					}
    				}
    			}
     
    		}
    		ajouterComposant(cont, spécialité, 100, 270, 370, 30);
        }
    et la méthode actionPerformed

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void actionPerformed(ActionEvent e) {
    		if (e.getSource() == domaine) choix() ;
    		if (e.getSource() == domaineSecondaire) choixD() ; // ici c'est le problème cette condition n'exécute pas 
     
    	}
    mon problème c'est que la condition if (e.getSource() == domaineSecondaire)
    ne marche pas et j'ai pas trouvé ou est le problème
    j'espère que vous avez me compris mon et merci pour vous aides

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    A mon avis le test fonctionne comme il se doit. C'est simplement que tes 2 variables sont différentes à ce moment la, le problème vient d'ailleurs

    Peut être faudrait-il poster le code "compilable" et testables pour voir de quoi il en retourne.

  3. #3
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par wax78 Voir le message
    A mon avis le test fonctionne comme il se doit. C'est simplement que tes 2 variables sont différentes à ce moment la, le problème vient d'ailleurs

    Peut être faudrait-il poster le code "compilable" et testables pour voir de quoi il en retourne.
    j'ai testé par System.out.println et j'ai trouvé que la deuxième println ne marche pas donc la deuxième condition ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (e.getSource() == domaine){System.out.println("66") ; choix() ;}
    		if (e.getSource() == domaineSecondaire){System.out.println("ll") ; choixD() ;}

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Bonjour,

    Je pense que le problème vient du fais que dans choix() tu instancies un nouveau Jcombobox quans tu ecris par exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(dom.equals("Histoire")) domaineSecondaire = new JComboBox(dms3);
    et il me semble que dans ce cas domaineSecondaire n'a plus son actionListener car ce n'est plus la même instance que celle crée dans instancierComposants.
    Il faut donc rajouter addActionListener chaque fois que tu "re instancies" ton JCombobox.

  5. #5
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    Bonjour ,
    effectivement vous avez raison merci pour votre remarque
    Citation Envoyé par ludomacho Voir le message
    Bonjour,

    Je pense que le problème vient du fais que dans choix() tu instancies un nouveau Jcombobox quans tu ecris par exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(dom.equals("Histoire")) domaineSecondaire = new JComboBox(dms3);
    et il me semble que dans ce cas domaineSecondaire n'a plus son actionListener car ce n'est plus la même instance que celle crée dans instancierComposants.
    Il faut donc rajouter addActionListener chaque fois que tu "re instancies" ton JCombobox.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JComboBox] Mmise à jour contenu
    Par java_math dans le forum Composants
    Réponses: 4
    Dernier message: 16/07/2008, 19h27
  2. [jcombobox]l'élément affiché lié à un autre objet
    Par szdavid dans le forum Composants
    Réponses: 3
    Dernier message: 11/05/2004, 11h17
  3. [swing][JComboBox]Problème de taille
    Par n!co dans le forum Composants
    Réponses: 8
    Dernier message: 06/03/2004, 11h53
  4. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 16h33
  5. Réinitialisation
    Par kacedda dans le forum C
    Réponses: 3
    Dernier message: 13/12/2002, 05h56

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