JCombobox dependants des uns et des autres
Résolu
faresalgerien
Messages postés
3
Statut
Membre
-
faresalgerien Messages postés 3 Statut Membre -
faresalgerien Messages postés 3 Statut Membre -
Bonjour Tout le monde,
j'ai développé un programme java qui contient trois (3) JComboBox , ils sont reliés entre eux.
C'est à dire en clair, en sélectionnant une valeur du premier JCombobox , le second affiche une liste de valeur dont les données sont liées au premier, et après avoir choisi également une valeur dans ce 2èm JCombobox, le troisième JCombobox aussi affiche une liste de valeurs dépendantes du 2èm JCombobox.
Je suis parvenu à relier les 2 premiers JCombobox, en créant une méthode JAVA qui permet de relier le 1èr au second, mais j'arrive pas à faire de même pour le 3èm en créant une seconde méthode qui permettrait de relier les valeurs du 3èm au second.
voilà mon code et merci de m'avoir aidé :)
La déclaration des variables
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"};
La méthode qui permet d'afficher le deuxième JComboBox selon le choix du premier
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);
}
La méthode qui permet d'afficher le troisième selon le choix du deuxième
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);
}
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
MERCI
j'ai développé un programme java qui contient trois (3) JComboBox , ils sont reliés entre eux.
C'est à dire en clair, en sélectionnant une valeur du premier JCombobox , le second affiche une liste de valeur dont les données sont liées au premier, et après avoir choisi également une valeur dans ce 2èm JCombobox, le troisième JCombobox aussi affiche une liste de valeurs dépendantes du 2èm JCombobox.
Je suis parvenu à relier les 2 premiers JCombobox, en créant une méthode JAVA qui permet de relier le 1èr au second, mais j'arrive pas à faire de même pour le 3èm en créant une seconde méthode qui permettrait de relier les valeurs du 3èm au second.
voilà mon code et merci de m'avoir aidé :)
La déclaration des variables
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"};
La méthode qui permet d'afficher le deuxième JComboBox selon le choix du premier
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);
}
La méthode qui permet d'afficher le troisième selon le choix du deuxième
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);
}
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
MERCI
A voir également:
- JCombobox dependants des uns et des autres
- JCombobox et JCheckBox dans un JTable - Forum Java
- JAVA: Comment remplir une JComboBox.... ✓ - Forum Java
- Impossible de resoudre les dependances des paquets - Forum Linux / Unix
- Access et insertion d'objet OLE dépendant - Forum Bureautique
1 réponse
Enfin j'ai trouvé la solution, le problème vient du fais que dans choix() j'ai instancié un nouveau JComboBox , 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 je "re instancies" mon JComboBox.