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